我有以下问题,
在我的rails 4应用程序中,我在s3上托管图像/视频。目前我公开了所有文件,例如我可以通过将公共链接存储在数据库中来访问的图像。
但是,我希望某些图片视频是私密的。
我使用以下
查看了预先签名的网址选项s3 = Aws::S3::Client.new(
region: AWS_REGION,
access_key_id: S3_CONFIG['access_key_id'],
secret_access_key: S3_CONFIG['secret_access_key']
)
resource = Aws::S3::Resource.new(client: s3)
bucket = resource.bucket(BUCKET_NAME)
utilities = bucket.objects(prefix: '/folder').each do |obj|
obj.presigned_url(:get, expires_in: 3600).to_s
end
这样可以正常工作,但我如何使用预先签名的网址,因为我显然不会像公共链接一样将它们存储在数据库中。
我正在使用aws-sdk版本2
我也想知道这一般是否是一个好的解决方案?
感谢任何提示, 让
答案 0 :(得分:1)
示例:
signer = Aws::S3::Presigner.new
url = signer.presigned_url(:put_object, bucket: "bucket", key: "path")