سؤال

هذا هو عنوان URL الذي تم إنشاؤه بواسطة روبي aws-sdk جوهرة لوضع:

curl --upload-file "/Users/README.rdoc" 
-H "x-amz-acl=public-read" 
"http://videos.s3.amazonaws.com/6c06517c-64f1-45ed-b07f-8c4c4edec6e3?AWSAccessKeyId={key}&Expires=1384519899&Signature=MKtBESBklYXFT%2B48EKLSoBiQpNA%3D"

-H "x-amz-acl=public-read" غير موجود في التوقيعالتوقيع على ما يرام (لا تظهر أمازون أي أخطاء).

لكن إذن "القراءة العامة" لم يتم تطبيقه، يرجى إعلامي بكيفية إنشاء عنوان URL موقّع والذي سيتم قراءته بشكل عام بعد التحميل.

شكرًا!

محدث:

s3 = AWS::S3.new
bucket = s3.buckets['some_videos']
id = SecureRandom.uuid
object = bucket.objects["#{id}"]
url = object.url_for(:put, expires_in: 30*60)
هل كانت مفيدة؟

المحلول 2

أضاف فريق أمازون هذا إلى sdk الخاص بهم.شكرا يا شباب!https://github.com/aws/aws-sdk-ruby/issues/412 https://github.com/aws/aws-sdk-ruby/commit/15e900c0918a67e20bbb6dd9509c112aa01a95ee

نصائح أخرى

يبدو أنه يمكنك تحديد ذلك باستخدام طريقة ACL (موثقة هنا) إذا كنت ترغب في تعيين دلو على القراءة العامة ، فيمكنك الاتصال:

s3.buckets['some-videos'].acl = :public_read

إذا كنت ترغب في تطبيق هذا الإذن مباشرة على كائن يمكنك الاتصال به:

bucket.objects["#{id}"].acl= :public_read
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top