ruby-on-rails-3 – 随机时间过后,大型AWS上传失败
使用Rails,我遵循
this Heroku article允许直接文件上传到S3 Bucket.我实际上是按照这篇文章的,因为我之前的实现不适用于分段上传(因此,大文件).一旦我实现了这个方法,大文件上传就好了,除了非常大的文件.
我应该注意到我偏离了这篇文章,因为我使用的是Rails版本,因为我正在使用aws gem的v1. 这就是我的设置方式: 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分钟后,有时一小时后.我想也许签名的网址即将到期,所以我明确地设置了一个过期的长期: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说:
分块上传的文档是here,你应该定义一个maxChunkSize属性来定义块的大小 $('#fileupload').fileupload({ maxChunkSize: 10000000 // 10 MB }); B计划 您可以建立一个接受文件上载的minimalistic node.js实例,并通过AWS SDK将其转发到S3. 你也可以在一个免费的heroku实例上运行它,因为它可能被允许每天睡6小时,我有很好的经验,文件上传服务以这种方式托管 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |