Rails:未定义的方法`存在?'对于AWS :: S3 :: S3Object:Class

时间:2013-05-03 10:23:44

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

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

此方法似乎不起作用:

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

我认为AWS :: S3 :: S3Object.exists?是一个来自旧宝石aws-s3的方法?

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

事实上,我想检查的真实路径是这样的:

record.image.to_file(:tiny).path 

(我的图片的微小版本)

感谢。

4 个答案:

答案 0 :(得分:3)

试试这个

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

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

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

希望这会有所帮助。

答案 1 :(得分:0)

尝试查看此文档

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

答案 2 :(得分:0)

请试试这个

obj = AWS :: S3 :: Bucket.find(“bucket_name”)

obj.objects [对象] .exists?

这将返回true或false。

OR

AWS :: S3 :: S3Object.exists? “path to file”,“bucket_name”

答案 3 :(得分:0)

Aws :: S3 :: Object.new(地区:'ap-southeast-1',凭证:'cred',密钥:'key',bucket_name:'bucket')。存在?