2016-05-30 150 views
0

我想上传图像PNG/JPG 小于10千字节到S3亚马逊。 上传成功,但文件上传并存储0字节。上传图像到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') 
+0

我怀疑大小是原因。我一直在上传(编程)各种尺寸(包括小于10K)。从来没有任何问题。我认为示例代码会很有用。 – Seva

+0

@seva谢谢,我添加了代码。 – Zvi

+0

@seva当我试图手动上传s3时,没关系 – Zvi

回答

0

根据该answer

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

+0

谢谢,但原始文件比2字节小1个字节 – Zvi

+0

尝试上传大小相同的txt文件。 –

+0

我上传了txt文件3.8k,并且正确的大小 – Zvi

1

它看起来像你正在传递文件到SDK的文件结尾。我怀疑这个SDK正在调用#read并且没有回来。尝试先倒卷文件。