当前位置: 首页 > 面试题库 >

亚马逊S3上传文件超时

蒋鸿文
2023-03-14
问题内容

我有一个800KB的JPG文件。我尝试上传到S3,并不断收到超时错误。你能弄清楚哪里出了问题吗?800KB很小,无法上传。

错误消息:在超时期限内未读取或写入到服务器的套接字连接。空闲连接将关闭。

HTTP状态码:400

AWS错误代码:RequestTimeout

Long contentLength = null;
System.out.println("Uploading a new object to S3 from a file\n");
try {
    byte[] contentBytes = IOUtils.toByteArray(is);
    contentLength = Long.valueOf(contentBytes.length);
} catch (IOException e) {
    System.err.printf("Failed while reading bytes from %s", e.getMessage());
}

ObjectMetadata metadata = new ObjectMetadata();
metadata.setContentLength(contentLength);

s3.putObject(new PutObjectRequest(bucketName, key, is, metadata));

问题答案:

IOUtils.toByteArray是否有可能正在耗尽您的输入流,以便在进行服务调用时不再需要从中读取任何数据?在这种情况下,stream.reset()将解决此问题。

但是,如果您只是上传文件(而不是任意InputStream),则可以使用采用File的更简单形式的AmazonS3.putObject(),这样就根本不需要计算内容长度。

http://docs.amazonwebservices.com/AWSJavaSDK/latest/javadoc/com/amazonaws/services/s3/AmazonS3.html#putObject(java.lang.String,java.lang.String,java.io.File)

这将自动多次重试任何此类网络错误。您可以使用ClientConfiguration对象实例化客户端重试多少次。

http://docs.amazonwebservices.com/AWSJavaSDK/latest/javadoc/com/amazonaws/ClientConfiguration.html#setMaxErrorRetry(int)



 类似资料:
  • 我正在尝试使用 java 对亚马逊 S3 进行分段上传。我正在使用下面链接中的代码。 http://docs.aws.amazon.com/AmazonS3/latest/dev/llJavaUploadFile.html 方案 1:要上载的文件大小为 31627。我使用 partSize 作为 500000 来指定单个部件的大小。 由于文件的大小小于部分大小,因此文件将上传到 S3。 方案 2:

  • 当用户上传图片时,我正在动态调整图像大小。原始图片存储在Amazon S3上一个名为djangobucket的bucket中。在这个桶中,包含数千个文件夹。 每个文件夹都以用户命名。我不必担心存储桶创建或文件夹创建,因为所有这些都是从客户端处理的。 下图为: 如您所见,Bob有许多图片。一旦用户将图片上传到S3,我就会通过URL通过Django下载它,在这种情况下,它将是:http://s3.am

  • 问题是,我正在尝试获取Amazon S3存储库中的文件。我收到了来自亚马逊的消息“InvalidAccessKeyId” 您提供的AWS访问密钥ID不存在于我们的记录中。(服务:Amazon S3;状态代码:403;错误代码:InvalidAccessKeyId;请求ID:62781C914754D8ED;S3扩展请求ID:fhv2t247XoEK99IZ6/f8lcWUz7IWlGybGfb2H

  • 我正在尝试将图像上传到我的AWS存储桶,我创建了一个新用户授予他完整的控制权 但是,在上传时,我收到以下错误: 05-27 07:09:47.219: W/System.err(20594):com.amazonaws.services.s3.model.Amazon S3异常:访问被拒绝(服务:Amazon S3;状态代码:403;错误代码:访问被拒绝;请求ID:),S3扩展请求ID:/=

  • 亚马逊云 图 1.20.2.1 - AWS AWS,即 Amazon Web Services,是亚马逊(Amazon)公司的 IaaS 和 PaaS 平台服务。AWS 提供了一整套基础设施和应用程序服务,使用户几乎能够在云中运行一切应用程序:从企业应用程序和大数据项目,到社交游戏和移动应用程序。AWS 面向用户提供包括弹性计算、存储、数据库、应用程序在内的一整套云计算服务,能够帮助企业降低 IT

  • 我正在尝试使用亚马逊-S3 REST API来上传大文件。 根据这里的API文档,我与邮递员形成了我的请求,如下所示。 我了解多部分顺序,但在执行上传部分编号的步骤时 我在各种论坛上找到了多种解决方案,但这些方案都不起作用。我错过了什么吗?