تحميل أمازون S3 عنوان url موقع للقراءة العامة
-
20-12-2019 - |
سؤال
هذا هو عنوان 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
لا تنتمي إلى StackOverflow