目前我正在使用S3存储桶上传一些pdf。
现在这些pdf都不能通过url直接访问。但我想在上传期间公开一些特定的pdf文件。
我已经离开了this博客,该博客解释了如何公开所有资源。但我不希望这样,我希望在上传过程中只公开几个特定文件。
目前我正在使用ruby aws-sdk。我想知道这可能吗?
答案 0 :(得分:1)
由于您没有粘贴您使用的任何特定代码段,我假设您尝试使用官方AWS Ruby SDK
来实现此目的File.open('/source/file/path', 'rb') do |file|
s3.put_object(bucket: 'bucket-name', key: 'object-key', body: file)
end
默认情况下,任何上传的文件都是私有的,因此无法通过网址访问。
如果您想将其公开,则需要设置其他参数:acl: "public-read"
。默认情况下,所有AWS开发工具包都使用ACL private
。所以修改我的上一个例子,它看起来像:
File.open('/source/file/path', 'rb') do |file|
s3.put_object(acl: "public-read", bucket: 'bucket-name', key: 'object-key', body: file)
end
现在您应该可以通过网址访问您的文件了。
您可以在此处阅读有关S3上的固定ACL的更多信息:http://docs.aws.amazon.com/AmazonS3/latest/dev/acl-overview.html#canned-acl