【问题标题】:AWS DeviceFarm Uploading the URL to S3 causes Error: read ECONNRESET?AWS DeviceFarm 将 URL 上传到 S3 导致错误:读取 ECONNRESET?
【发布时间】:2016-10-28 10:15:33
【问题描述】:

上传用于文件上传的 DeviceFarm S3 url 时出现错误代码:ECONNRESET。

这是我的代码:

var AWS = require('aws-sdk');
var fs = require('fs'); 
var req = require('request');
var devicefarm = new AWS.DeviceFarm();
AWS.config.loadFromPath('C:/Users/Abin.mathew/AWSdata/config.json');
var apkPath= "D:/DTS/APKs/TPLegacyPlugin-googleplaystore-debug-rc_16.2.15.apk";
var stats = fs.statSync(apkPath);
var url= "https://prod-us-west-2-uploads.s3-us-west-2.amazonaws.com/arn%3Aaws%3Adevicefarm%3Aus-west-2%3A594587224081%3Aproject%3Ade07f584-7c64-4748-aebd-ec965ab107cf/uploads/arn%3Aaws%3Adevicefarm%3Aus-west-2%3A594587224081%3Aupload%3Ade07f584-7c64-4748-aebd-ec965ab107cf/5dd627eb-4eb2-4f2d-a300-0fde0720bde4/MyAppiumPythonUpload?AWSAccessKeyId";

fs.createReadStream(apkPath).pipe(req({
  method: 'PUT',
  url: url,
  headers: {
    'Content-Length': stats['size']
  }
}, function (err, res, body) { 
   console.log(body);
   console.log(res);
   console.log(err);
}));

【问题讨论】:

  • 请发布您的代码。

标签: node.js aws-device-farm


【解决方案1】:

您的网址不正确。它代表 Appium 测试包,但您正在尝试上传 APK。您是否重用了先前操作中的 URL?预签名 URL 也会在一段时间后过期,因此不应重复使用。

为了完成这项工作,

  1. 调用 CreateUpload 并从结果中获取预签名 URL。
  2. 将正确的文件发布到 URL。

我们有published a blog post 描述了要遵循的程序。代码示例使用 CLI,但将它们转换为 nodejs 应该很简单。

【讨论】:

  • 感谢您的回复。但我再次针对新的 .apk 文件生成了一个新 URL,但现在它显示“错误:读取 ECONNRESET”
  • 是他们对文件大小的限制,我猜是由于一些超时错误
  • 文件大小限制为 4 GB。连接重置的潜在原因太多,所以我没有提供单一的解决方案。您可以尝试从在 us-west-2 中运行的 EC2 实例上传文件,以最大限度地减少网络延迟,因为 AWS Device Farm 服务端点托管在 us-west-2 中。
  • 现在我收到签名不匹配错误
猜你喜欢
  • 2013-09-09
  • 1970-01-01
  • 1970-01-01
  • 2021-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-13
  • 1970-01-01
相关资源
最近更新 更多