0

我正在使用 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

4 回答 4

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#

希望这会有所帮助。

于 2014-01-03T11:36:48.590 回答
0

试试看这个文件

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

于 2013-05-03T11:07:11.360 回答
0

请试试这个

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

obj.objects[object_name].exists?

这将返回真或假。

或者

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

于 2015-05-04T06:41:11.610 回答
0

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

于 2016-06-06T05:04:48.237 回答