-6ren">
gpt4 book ai didi

ruby - 使用 ruby​​ (aws :s3) - connection reset by peer on UBUNTU) 将大文件上传到 S3

转载 作者:数据小太阳 更新时间:2023-10-29 08:13:34 24 4
gpt4 key购买 nike

我正在尝试使用 ruby​​ 在 S3 上存储一些大文件 aws:s3使用:

S3Object.store("video.mp4", open(file), 'bucket', :access => :public_read)

对于 100 MB 左右的文件,一切都很好,但对于超过 200 MB 的文件,我在日志中收到“连接由对等方重置”错误。

有人遇到过这种怪事吗?从网络上看,这似乎是 large 的问题,但我还没有找到明确的解决方案。

我正在使用 Ubuntu。

编辑:

这似乎是建议的 Linux 问题 here .

最佳答案

不知道原始问题可能出在哪里,但作为解决方法,您可以尝试分段上传。

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,但上面的代码已经解决了这一点。

关于ruby - 使用 ruby​​ (aws :s3) - connection reset by peer on UBUNTU) 将大文件上传到 S3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7756465/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com