繁体   English   中英

Ruby aws-sdk-“ .exists?”表示该文件不存在,即使我在存储桶中看到了该文件

[英]Ruby aws-sdk - “.exists?” says the file doesn't exist even though I see it in the bucket

我整个下午都在检查是否存在上传到AWS S3的文件。 我使用Ruby On Rails和名为aws-sdk v2的gem。

首先-该文件存在于存储桶中,位于以下位置:

test_bucket/users/10/file_test.pdf

没有错别字,这是确切的路径。 此外,存储桶+凭据已正确设置。

这是我尝试检查文件是否存在的方法:

config = {region: 'us-west-1', bucket: AWS_S3_CONFIG['bucket'], key: AWS_S3_CONFIG['access_key_id'], secret: AWS_S3_CONFIG['secret_access_key']}
Aws.config.update({region: config[:region], 
                   credentials: Aws::Credentials.new(config[:key], config[:secret]),
                   :s3 => { :region => 'us-east-1' }})
bucket = Aws::S3::Resource.new.bucket(config[:bucket])

puts bucket.object("file_test.pdf").exists?   

输出始终为false

我还尝试了puts bucket.object("test_bucket/users/10/file_test.pdf").exists? 但是还是false

另外,我尝试在AWS S3仪表板中将文件公开,但没有成功,仍然为false 单击生成的链接时,该文件可见。

但是问题是当我使用aws-sdk检查文件是否存在时,输出仍然为false

我究竟做错了什么?

谢谢。

您需要将完整路径传递给对象(不包括存储桶名称) users/10/file_test.pdf

暂无
暂无

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

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