【问题标题】:Ruby aws-sdk - ".exists?" says the file doesn't exist even though I see it in the bucketRuby aws-sdk - “.exists?”说文件不存在,即使我在存储桶中看到它
【发布时间】:2016-04-20 09:55:52
【问题描述】:

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

首先——文件存在于bucket中,它位于这里:

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

我做错了什么?

谢谢。

【问题讨论】:

    标签: ruby-on-rails ruby amazon-s3 aws-sdk


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2012-10-06
      • 2015-04-05
      • 2022-01-11
      • 2011-03-28
      • 2017-03-17
      • 2016-03-02
      • 2021-05-05
      • 2020-05-12
      • 2020-03-17
      相关资源
      最近更新 更多