سؤال

هل يمكن لأحد أن يقول لي كيفية استخدام التحميل للتحميل مباشرة إلى Amazon S3؟

قانون بلدي على النحو التالي:

$('#fileInput').uploadify({
  'fileDataName' : 'file',
  'uploader'  : 'uploadify.swf',
  'script'    : 'http://BUCKET-NAME-GOES-HERE.s3.amazonaws.com/',
  'cancelImg' : 'cancel.png',
  'method'    : 'post',
  'auto'      : true,
  'onError': function (a, b, c, d) {
    alert('error '+d.type+": "+d.info + ' name: ' + c.name + ' size: ' + c.size);
  },
  'scriptData' : {
    'AWSAccessKeyId': "KEY-GOES-HERE",
    'key': "${filename}",
    'acl': "public-read",
    'policy': "POLICY-STRING-GOES-HERE",
    'signature': "SIGNATURE-GOES-HERE",
    'success_action_status': '200'
  }
}); 

تبدو سلسلة السياسة (غير المنصوص عليها) الخاصة بي:

{
  "expiration": "2100-12-01T12:00:00.000Z",
  "conditions": [
    {"acl": "public-read"},
    {"bucket": "BUCKET-NAME-GOES-HERE"},
    {"success_action_status" : 200},
    ["starts-with", "$filename", ""],
    ["starts-with", "$folder", ""],
    ["starts-with", "$key", ""],
    ["content-length-range", 1, 209715200]
  ]
}

يتيح لي استخدام الرمز أعلاه فعليا تحديد ملف، والذي يظهر بعد ذلك للتحميل (في مكان ما)، ولكن لا شيء يظهر في دلو S3 الخاص بي ولا يتم إرجاع أي أخطاء إلى وحدة التحكم JS.

باستخدام نموذج HTML العادي لنشر ملف إلى دلو S3 يعمل بشكل جيد.

اي نصيحه؟

هل كانت مفيدة؟

المحلول

من هذا مسلك منتدى التحميل:

<html>
<head>
<script type="text/javascript" src="jquery-1.3.2.min.js"></script>
<script type="text/javascript" src="swfobject.js"></script>
<script type="text/javascript" src="jquery.uploadify.v2.1.0.js"></script>
<link rel="stylesheet" href="uploadify.css" type="text/css" media="screen" />
</head>

<body>
<form>
<input id="fileInput" name="fileInput" type="file" />
</form>
<script type="text/javascript">// <![CDATA[
   $(document).ready(function() {
      $('#fileInput').uploadify({
         'fileDataName' : 'file',
          'uploader'  : 'uploadify.swf',
          'script'    : 'http://UPLOADBUCKET/',
          'cancelImg' : 'cancel.png',
          'auto'      : true,
          'onError' : function(errorObj, q, f, err) { console.log(err); },

          'scriptData' : {
              AWSAccessKeyId: "ACCESS_KEY",
             key: "foo/${filename}",
             acl: "public-read",
             policy: "POLICY STRING"
             signature: "SIGNATURE,
                success_action_status: '200'
             }

          });
    });
// ]]></script>
</body>

</html>

قاعدة سلسلة السياسة هي كما يلي:

{ "expiration": "2100-12-01T12:00:00.000Z",
"conditions": [
  {"acl": "public-read" },
  {"bucket": "UPLOADBUCKET" },
  {"success_action_status" : '200'},
    ["starts-with", "$filename", "" ],
    ["starts-with", "$folder", "" ],
    ["starts-with", "$key", "foo"],
    ["content-length-range", 1, 209715200]
  ]
}

نصائح أخرى

تمكنت من الحصول على تحميل مباشر إلى Amazon S3 مع شريط التقدم، حيث حصلت على عرض تجريبي من هنا.

إذا كان أي شخص مهتما، فسوف يدعم الدلاء والمجلدات داخل دلو يعمل على إنتاج مساعد WordPress لهذا.

هذا يستخدم Swfuppload، Tho Work على تحميل مركز مريضا عند القيام به.

http://www.isimpledesign.co.uk/blog/amazon-s3-direct-multiple-file-uproger-progrogress-bar.

هذا هو رمز Java لحفظ الصورة في S3Cloud. أضف هذا الرمز إلى ملف التحميل الخاص بك (مثل Uploadify.php) سيكون لديك ملف نصي للتحميل الخاص بك.

بيانات اعتماد AwsCredentials = New AwsCredentials (_access_key، _secret_key)؛

    log.info("oovfilepath : " + oovfilepath);
    log.info("name : " + name);
    S3Service s3Service = new RestS3Service(credentials);
    S3Bucket s3Bucket = s3Service.createBucket(_BUCKET_NAME);
    AccessControlList bucketAcl = s3Service.getBucketAcl(s3Bucket);
    bucketAcl.grantPermission(GroupGrantee.ALL_USERS,
            Permission.PERMISSION_READ);

    InputStream input = new FileInputStream(oovfilepath);

    S3Object s3Object = new S3Object(s3Bucket, name);
    log.info("s3Object:" + s3Object);

    s3Object.setAcl(bucketAcl);
    s3Object.setDataInputStream(input);

    log.info("s3Object:" + s3Object);

    s3Service.putObject(s3Bucket, s3Object);
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top