ruby aws-sdk v2 public 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
谁能帮我解决这个问题。
您在未指定 "ACL"(访问控制列表)的情况下将对象上传到 Amazon S3。简单的解决方法是在上传对象时指定 'public-read' ACL:
object.upload_file(file_to_upload, acl:'public-read')
当您使用 'public-read' ACL 上传文件时,任何人 都可以下载该对象。如果您希望仅供特定用户访问,则可以提供自定义 ACL,或者您可以省略 ACL 而使用预签名 URL:
object.presigned_url(:get)
#=> 'https://...'
预签名 URL 提供对 Amazon S3 中私有对象的临时访问。预签名 URL 在设定的时间后过期,默认为 15 分钟。
我正在使用 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
谁能帮我解决这个问题。
您在未指定 "ACL"(访问控制列表)的情况下将对象上传到 Amazon S3。简单的解决方法是在上传对象时指定 'public-read' ACL:
object.upload_file(file_to_upload, acl:'public-read')
当您使用 'public-read' ACL 上传文件时,任何人 都可以下载该对象。如果您希望仅供特定用户访问,则可以提供自定义 ACL,或者您可以省略 ACL 而使用预签名 URL:
object.presigned_url(:get)
#=> 'https://...'
预签名 URL 提供对 Amazon S3 中私有对象的临时访问。预签名 URL 在设定的时间后过期,默认为 15 分钟。