gpt4 book ai didi

ruby-on-rails-3 - 大量 AWS 上传在随机时间后失败

转载 作者:行者123 更新时间:2023-12-01 06:08:29 25 4
gpt4 key购买 nike

使用 Rails,我关注了 this Heroku article允许将文件直接上传到 S3 存储桶。我实际上关注了这篇文章,因为我之前的实现不适用于分段上传(因此,大文件)。一旦我实现了这个方法,上传的大文件就好了,除了非常大的文件。

我应该注意到我偏离了这篇文章,因为我使用的是 aws 的 v1。 gem,因为我们的 Rails 版本。

这是我的设置方式:

S3_BUCKET = AWS::S3.new.buckets[ENV['S3_BUCKET_NAME']]

def set_s3_post_url
@s3_media_post_url = S3_BUCKET.presigned_post(key: "product_media/#{SecureRandom.uuid}-${filename}", success_action_status: '201', acl: 'public-read')
end

如前所述,这适用于大文件(~1GB),但是当我尝试上传一个,即 10GB 的文件时,它会进入大部分上传状态,然后随机失败。有时20分钟后,有时一小时后。我认为签名的 URL 可能已过期,因此我使用 expires: Time.now + 4.hours 明确设置了一个长过期时间。 ,但这似乎不起作用。

如果有人有任何想法,我将不胜感激!

更新

我尝试了@bbozo 使用 maxChunkSize 的回答,但不幸的是,这似乎并没有做到。但是,当我在控制台中查看 XHR 请求时,失败的请求从 AWS 返回了以下 XML 响应:
<Error>
<Code>InternalError</Code>
<Message>We encountered an internal error. Please try again.</Message>
<RequestId>1231BD4A29EE5291</RequestId>
<HostId>f5muQPj2lT2Tmqi49ffqjT4ueLimYvrWUJL6WRW+F7vgm2rL1+FOD3pmsKOEYxFaSFXzLiEZjTg=</HostId>
</Error>

最佳答案

计划A

您是否正确配置了分块上传?

https://github.com/blueimp/jQuery-File-Upload/wiki/Chunked-file-uploads

Heroku 文章没有提到在 the jquery plugin 中设置分块上传的任何内容。处理文件上传,

FAQ说:

It is possible to upload files up to 4 GB with the jQuery File Upload plugin. By making use of Chunked file uploads (with chunks smaller than 4GB), the potential file size is unlimited. The restriction of 4 GB is due to some browser limitations, which might be fixed in future updates to those browsers



分块上传的文档是 here ,你应该定义一个 maxChunkSize定义块大小的属性
$('#fileupload').fileupload({
maxChunkSize: 10000000 // 10 MB
});

B计划

您可以建立一个简单的 node.js 实例,该实例接受文件上传并通过 AWS 开发工具包将其转发到 S3。

您也可以在免费的 heroku 实例上运行它,因为它可能允许每天睡 6 小时,而且我在以这种方式托管文件上传服务方面有很好的经验

关于ruby-on-rails-3 - 大量 AWS 上传在随机时间后失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34818212/

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