问题标签 [aws-java-sdk]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
1357 浏览

java - 尝试 PutObject 请求时 AWS S3 Java SDK 超时

我有一些代码尝试将图像上传到 s3 存储桶。它们都在 100-200kb 左右。

但是,经过几次尝试上传后,我总是得到以下堆栈跟踪:

com.amazonaws.AmazonClientException:无法执行 HTTP 请求:超时等待来自 com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:713) 处 com.amazonaws.http.AmazonHttpClient.doExecute(AmazonHttpClient.java: 453) 在 com.amazonaws.http.AmazonHttpClient.executeWithTimer(AmazonHttpClient.java:415) 在 com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:364) 在 com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client .java:3964) 在 com.amazonaws.services.s3.AmazonS3Client.putObject(AmazonS3Client.java:1538)

如果我在我的代码上执行 GetObject,我不会遇到这个问题,只有在上传时。

代码如下:

我试图在网上找到解决方案,但我能找到的只是有关 GetObject 的问题并且没有正确使用响应。

0 投票
1 回答
3092 浏览

java - 在适用于 AWS Kinesis 的 KCL Java 库的情况下,如何使用 requestShutdown 和 shutdown 进行正常关闭

我正在尝试使用 Java 中 KCL 库的新功能 for AWS Kinesis 通过注册关闭挂钩来优雅地关闭所有记录处理器,然后优雅地停止工作人员。新库提供了需要实现记录处理器的新接口。但是它是如何被调用的呢?

尝试先调用 worker.requestShutdown() 然后调用 worker.shutdown() 并且它可以工作。但它是否有任何使用它的预期方式。那么同时使用它们有什么用,它的好处是什么?

0 投票
1 回答
105 浏览

amazon-s3 - 用于从 QNX java 上传文件的 AWS S3 库

我想使用 java 将文件从 QNX 平台传输到 AWS S3 存储桶。QNX 平台中 jar 文件的最大大小为 <4MB。

但是 AWS java 库非常大 > 40MB。是否有任何可用于 java 的较小尺寸的 AWS s3 客户端库。

0 投票
0 回答
115 浏览

java - 如何让我的 Elastic Beanstalk Web 应用程序与 Simple Storage Service 存储桶交互?(Java、EB、S3)

我正在做一个项目,用户可以上传将远程存储的图像。

我正在通过 Elastic Beanstalk (EB) 构建一个 Java Web 应用程序,其中用户的图像将存储在简单存储服务 (S3) 中。

执行此操作所需的代码有效,但是,它只能远程执行。当我通过 WildFly 在本地运行应用程序时,用户能够将图像发送到 S3,但是,当我将 WAR 部署到 EB 时,用户无法执行此操作。

我已经尝试调试并且没有抛出异常,代码只是“停止”在一行。说行:

我记录了多条消息,发现上一行是代码“中断”的地方。我认为这可能是因为我所在的地区,但我已经仔细检查过,它似乎是正确的。因此,我的问题是:

如何让我的 EB Web 应用程序与我的 S3 存储桶交互?

我不明白代码如何以及为什么可以在本地完美地工作,但根本不能在远程工作(没有抛出异常)。因此,我开始认为 EB 可能需要配置才能与 S3 交互,但我不确定。

任何帮助将不胜感激。

谢谢。

0 投票
0 回答
105 浏览

jackson - 使用 Jackson 反序列化 PrimaryKey (DynamoDB)

当我尝试反序列化 PrimaryKey 时抛出错误(序列化与 Jackson 配合得很好)。

我正在尝试以下操作:

与对象:

并得到错误:

谢谢

0 投票
2 回答
4920 浏览

amazon-web-services - 您如何对具有 IAM 角色的 AWS API 网关进行 Java 客户端调用

我正在寻找用于调用 AWS API 网关的 java 代码示例。

我可以调用不需要 IAM 验证的 AWS API 网关,但我发现很难找到一个如何构建 URL 的清晰示例。

您如何正确传递密钥和密钥 ID?我是否必须完成按照 Signature Version 4 协议对 URL 进行编码所需的所有步骤,或者我可以只在 URL 中包含密钥和密钥 ID?

是否有使用 AWS 开发工具包调用 AWS API 网关的 Java 编写的客户端程序的代码示例?在通用调用中,您可以根据需要传入 URL 和其他参数?

我尝试使用由 AWS API Gateway 生成的 AWS Java SDK。我在使用生成的 SDK 时遇到问题,任何教程将不胜感激。我找不到有关如何使用构建的 SDK 调用 API 的文档。我已经使用 MAVEN 构建了 SDK .. 我想,我正在尝试按照本教程进行操作...

http://docs.aws.amazon.com/apigateway/latest/developerguide/how-to-call-apigateway-generated-java-sdk.html

....但我不确定我是否正确安装了 SDK,并且我看不到密钥和密钥 ID 传递给 API 调用的位置...

0 投票
2 回答
1146 浏览

java - AmazonS3Builder 生成有效的 AmazonS3 对象,但最终返回 null

我正在使用 AWS Java SDK v1,并且正在尝试使用构建器创建 AmazonS3 实例。我在此处遵循 AWS 文档中的指南,并使用 BasicAWSCredentials 对象传递显式凭证。当构建器构建时,我得到一个空客户端s3Client,我正在存储实例,我不知道为什么。try-catch 块没有抛出或捕获错误。这是我建立连接的方式:

我已经用 Eclipse 调试器逐步完成了它,看起来build()调用实际上返回了一个有效的 AmazonS3Client 实例,但是在这个引用返回到s3Client变量之前,有一个步骤checkPackageAccess()被调用,这个返回值是什么由于某种原因被退回。经过进一步检查,我发现这checkPackageAccess()是 java.lang.ClassLoader 中的一个方法,它被 JVM 调用,并且它具有 void 返回类型。在我的应用程序中,似乎没有设置默认的 SecurityManager,因此在 ClassLoader 的checkPackageAccess()方法中没有调用其他函数。

我对这种行为有点困惑。我的 JRE 是 1.8。据我了解,在查找类定义时总是会调用 ClassLoader,但是为什么在类已经实例化之后会调用它,为什么函数的原始返回值build()没有返回到调用者上下文?在这种情况下,调试器显示存在一个有效的 AmazonS3Client 对象,并且build()甚至在 checkPackageAccess 调用之前由调用返回。

我之前在同一个项目中使用几乎相同的代码制作了一个 AmazonRedshift 实例,并且运行顺利,所以我很肯定问题出在 AmazonS3 类或构建器上,但我不确定我在哪里'没有看到任何错误或奇怪的打印。

用于与 Amazon Redshift 建立类似连接的代码:

有没有人调试过这种问题?我能做些什么来解决这个问题并取回一个有效的实例?

0 投票
2 回答
5113 浏览

aws-java-sdk - 并非所有字节都从 S3ObjectInputStream 中读取,因此中止 HTTP 连接

我最近不得不升级到 aws-java-sdk 1.11.108。我有一个 java 程序,可以将 s3 对象(8 到 10 GB 大小)下载到 EC2 盒子并将其作为流处理。该程序已经运行了 2 年以上,没有任何问题,但是在更新到最新版本的 aws-java-sdk 后,我的文件下载中途中止,日志中出现以下 WARN 消息(无一例外)

WARN:com.amazonaws.services.s3.internal.S3AbortableInputStream - Not all bytes were read from the S3ObjectInputStream, aborting HTTP connection. This is likely an error and may result in sub-optimal behavior. Request only the bytes you need via a ranged GET or drain the input stream after use.

如果有人能说出为什么流在没有抛出任何异常的情况下静默中止,我将不胜感激,以及使它工作的最佳方法是什么。

谢谢

0 投票
1 回答
616 浏览

java - java - 使用 servlet 下载输入流

我正在使用以下代码从 s3 存储桶中的对象获取内容。我可以将数据复制到本地文件中,但该文件需要“下载”并且必须显示在浏览器的下载列表中。我对此进行了一些搜索,然后cam知道这与 response.setHeader( "Content-Disposition", "attachment;filename=\"" + filename + "\"" ); 我也尝试添加它有关,但不知何故无法使其正常工作。我的理解是源必须是服务器上转换为流的文件。但我以输入流的形式获取 s3 内容。如何在浏览器中将其下载为文件?以下是我到目前为止尝试过的代码

0 投票
1 回答
1739 浏览

java - 使用 AWS Sdk 调用 AWS Lambda 时的 NoSuchMethod

我在 API Gateway 中创建并部署了一个简单的 GET API,这里是 ARN,这个函数没有任何身份验证,我可以简单地在我的浏览器上调用它

并且可以使用浏览器浏览的公共url是:

我正在使用 Spring Boot 项目和下面的代码来调用 API(遵循这个 Doc

作为 lambda 服务的接口

使用该接口调用 lambda 函数的服务

调用 getA 函数后,系统会出现以下异常:

知道为什么会这样吗?我错过了什么?