ERR_CONNECTION_RESET将大文件上载到Amazon S3时出错

时间:2014-04-24 02:03:43

标签: node.js file-upload heroku amazon-web-services amazon-s3

我正在学习本教程:

https://devcenter.heroku.com/articles/s3-upload-node

使用NodeJS和Jquery将文件上传到Amazon s3。它适用于小图像和文件。但是它会产生XHR连接重置错误。

我的CORS配置看起来完全像这样:

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
   <CORSRule>
        <AllowedOrigin>*</AllowedOrigin>
        <AllowedMethod>GET</AllowedMethod>
        <AllowedMethod>POST</AllowedMethod>
        <AllowedMethod>PUT</AllowedMethod>
        <AllowedHeader>*</AllowedHeader>
    </CORSRule>
</CORSConfiguration>

我错过了什么吗?

1 个答案:

答案 0 :(得分:2)

如果您按照heroku文档中的说明进行操作,则会看到一行

  const s3Params = {
Bucket: S3_BUCKET,
Key: fileName,
Expires: 60,
ContentType: fileType,
ACL: 'public-read'};

您可以在this aws documentaion中看到,Expires元数据表示使预签名URL操作失效的秒数。 这里给出的是60,等于1分钟。在60秒内上传大型文件。是不可能的。

FIX :尝试从s3Params中删除过期的元数据或增加其值。 默认情况下,预签名的网址会在15分钟后过期。

现在您的代码将如下所示:

  const s3Params = {
Bucket: S3_BUCKET,
Key: fileName,
ContentType: fileType,
ACL: 'public-read'};