我正在尝试使用ruby aws:s3使用:
在S3上存储一些大文件S3Object.store("video.mp4", open(file), 'bucket', :access => :public_read)
对于100 MB左右的文件,一切都很棒但是文件超过200 MB我在日志中遇到“按对等方重置连接”错误。
有没有人遇到这种奇怪的事情?从网上看,这似乎是一个很大的问题,但我还没有找到一个明确的解决方案。
我正在使用Ubuntu。
这似乎是建议here的Linux问题。
答案 0 :(得分:0)
不知道原始问题可能在哪里,但作为解决方法,您可以尝试分段上传。
filename = "video.mp4"
min_chunk_size = 5 * 1024 * 1024 # S3 minimum chunk size (5Mb)
@object.multipart_upload do |upload|
io = File.open(filename)
parts = []
bufsize = (io.size > 2 * min_chunk_size) ? min_chunk_size : io.size
while buf = io.read(bufsize)
md5 = Digest::MD5.base64digest(buf)
part = upload.add_part(buf)
parts << part
if (io.size - (io.pos + bufsize)) < bufsize
bufsize = (io.size - io.pos) if (io.size - io.pos) > 0
end
end
upload.complete(parts)
end
S3分段上传有点棘手,因为每个部分的大小必须超过5Mb,但已经处理了上述代码。