【问题标题】:Uploading large files to S3 with ruby (aws:s3) - connection reset by peer on UBUNTU使用 ruby​​ (aws:s3) 将大文件上传到 S3 - UBUNTU 上的对等方重置连接
【发布时间】:2011-12-07 01:46:19
【问题描述】:

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

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

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

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

我正在使用 Ubuntu。

编辑:

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

【问题讨论】:

    标签: ruby ubuntu amazon-s3


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2020-12-27
      • 2021-07-14
      • 1970-01-01
      • 2018-02-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-18
      • 2013-12-24
      相关资源
      最近更新 更多