我在Rails项目中使用aws-skd-s3 gem。
创建S3资源
s3 = Aws::S3::Resource.new(access_key_id: #####,
secret_access_key: #####,
region: 'us-east-1')
创建一个S3对象
path = 'sample'
key = test.csv
obj = s3.bucket(#{bucket_name}).object("#{path}" + key)
在S3中存储CSV
obj.put(body: csv_response, content_type: 'text/csv')
如何验证put方法将csv存储在S3中而没有任何问题?
S3中的put方法是否可以使用任何状态码进行验证?
答案 0 :(得分:1)
一种我见过或读过其他人的方法是在上传之前计算原始文件的md5哈希值,然后将其与etag
响应中的obj.put
值进行匹配
答案 1 :(得分:1)
两种解决方法:
exists?
呼叫。像这样: s3 = Aws::S3::Resource.new(region: 'ap-southeast-1') # change to the region you use
obj = s3.bucket('bucket-name').object("path/to/object/in/bucket")
if obj.exists?
# Object was uploaded successfully!
else
# No it wasn't!
end
希望有帮助!