【问题标题】:Rails : undefined method `exists?' for AWS::S3::S3Object:ClassRails:未定义的方法“存在吗?”对于 AWS::S3::S3Object:Class
【发布时间】:2016-06-06 13:04:48
【问题描述】:

我正在使用 aws-sdk gem 并尝试验证上传到存储桶的文件是否存在。 我也在使用 Paperclip 2.7。

这个方法好像不行:

if record.image and AWS::S3::S3Object.exists? record.image, "mybucket-dev"

我认为 AWS::S3::S3Object.exists?是旧 gem aws-s3 的方法吗?

我可以使用什么方法来测试文件是否存在于存储桶中?

其实我要检查的真实路径是这样的:

record.image.to_file(:tiny).path 

(我的图片的小版本)

谢谢。

【问题讨论】:

    标签: ruby-on-rails amazon-web-services amazon-s3 paperclip


    【解决方案1】:

    试试这个

    AWS::S3.new.buckets["bucket"].objects["file path on s3"].exists?
    

    如果文件存在,上述代码将返回true,否则返回false

    供您将来参考,请参考http://docs.aws.amazon.com/AWSRubySDK/latest/AWS/S3/S3Object.html#

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      试试看这个文档

      http://rubydoc.info/github/stesla/fog/Fog/AWS/S3:head_object 不确定它是否有帮助,这是使用 Fog

      【讨论】:

        【解决方案3】:

        请试试这个

        obj = AWS::S3::Bucket.find("bucket_name")

        obj.objects[object_name].exists?

        这将返回真或假。

        AWS::S3::S3Object.exists? "文件路径", "bucket_name"

        【讨论】:

          【解决方案4】:

          Aws::S3::Object.new(region:'ap-southeast-1', credentials: 'cred', key: 'key', bucket_name: 'bucket').exists?

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-08-23
            • 2020-04-27
            • 2012-03-15
            • 2019-04-28
            • 2016-08-27
            相关资源
            最近更新 更多