繁体   English   中英

ruby aws-sdk v2公共URL访问被拒绝的问题

[英]ruby Aws-sdk v2 public url access denied issue

我正在使用aws-sdk'2.0.29'将CSV文件上传到S3。 在访问public_url时最终出现访问被拒绝的问题。

 s3_credentials = Aws::Credentials.new(S3_CREDENTIALS['access_key_id'],S3_CREDENTIALS['secret_access_key']) #creating credentials object
 s3_bucket = Aws::S3::Resource.new(region: ['region'], credentials: s3_credentials).bucket(S3_CREDENTIALS['bucket']) #finding bucket
 object = s3_bucket.objects(s3_file_path) #creating an object
 object.upload_file(file_to_upload)#uploading file to s3
 object.public_url #fetching the uploaded file url from s3

有人可以帮我弄这个吗。

您将对象上载到Amazon S3时未指定“ ACL”(访问控制列表)。 简单的解决方法是在上传对象时指定“公开读取”的ACL:

 object.upload_file(file_to_upload, acl:'public-read')

当您使用“公开读取”的ACL上传文件时, 任何人都可以下载该对象。 如果您希望只允许特定的用户访问它,则可以提供自定义的ACL,或者可以省略ACL而是使用预签名的URL:

 object.presigned_url(:get)
 #=> 'https://...'

预签名URL提供对Amazon S3中私有对象的临时访问。 预签名的URL在设置的时间(默认为15分钟)后过期。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM