将图像上传到S3 Amazon获取0个字节

时间:2016-05-30 20:18:38

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

我试图将图片png / jpg 小于10千字节上传到s3亚马逊。 上传成功但文件上传并以0字节存储。

当我试图看到s3-提供的链接中的图像时,我感到空白。

如果我上传超过10千字节大小的图片,那就没关系。

有人可以知道这是什么问题吗?

file_name = account[:img_token] + File.extname(img.original_filename)
file = Tempfile.new(file_name, encoding: 'ascii-8bit')
file.write(img.read)
path = file.path
bucket_name = 'bucket'
s3 = AWS::S3.new(access_key_id: ENV['S3_ACCESS_KEY'], secret_access_key: ENV['S3_SECRET_ACCESS_KEY'])
link = 'https://s3-eu-west-1.amazonaws.com/' + bucket_name + '/' + file_name
key = file_name
object = s3.buckets[bucket_name].objects[key].write(file: path, acl: 'public-read')

2 个答案:

答案 0 :(得分:1)

看起来您正在将文件传递到寻求到文件末尾的SDK。我怀疑SDK正在调用#read并且返回nil。首先尝试倒回文件。

答案 1 :(得分:0)

根据此answer

  

写入,读取和删除包含1个字节到5个字节的对象   每个数据。您可以存储的对象数量不受限制。