问题标签 [aws-sdk-java-2.0]
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.
java - S3Exception:我们计算的请求签名与您提供的签名不匹配
我有不同的对象产生保存在 S3 中的文件。每个对象调用以下函数来保存文件。
我只有少数对象有以下问题。对象要么总是保存文件,要么永远不能保存文件。
错误是
我们计算的请求签名与您提供的签名不匹配。检查您的 AWS 秘密访问密钥和签名方法。有关详细信息,请参阅 REST 身份验证和 SOAP 身份验证了解详细信息。(服务:S3,状态码:403,请求 ID:79b6c0a2-0d74-1f30-a4bf-246e9631ccd8,扩展请求 ID:null)
我验证一下,bucket 总是相同的值,输入流数据包含文件的数据。数据成功传输到 S3 存储桶。关键总是喜欢eventsnapshot-21234-7-2021-08-12-1628767690000.jpg
。
你已经有这样的问题了吗?
java - AWS 开发工具包 Java V2 SIGNING_REGION_SCOPE 错误
我正在使用下一个 AWS 依赖项:
这是我的 S3Client 的 bean 配置
最后是我上传文件的实现方法:
但是这段代码给了我下一个错误日志:
java.lang.NoSuchFieldError: SIGNING_REGION_SCOPE at software.amazon.awssdk.services.s3.internal.handlers.EndpointAddressInterceptor.lambda$modifyHttpRequest$1(EndpointAddressInterceptor.java:71) at java.base/java.util.Optional.orElseGet(Optional. java:369) 在 software.amazon.awssdk.core.interceptor.ExecutionInterceptorChain.modifyHttpRequestAndHttpContent(ExecutionInterceptorChain.java:90) 在 software.amazon.awssdk.services.s3.internal.handlers.EndpointAddressInterceptor.modifyHttpRequest(EndpointAddressInterceptor.java:71)在software.amazon.awssdk.core.internal.handler.BaseClientHandler.runModifyHttpRequestAndHttpContentInterceptors(BaseClientHandler.java:164) 在software.amazon.awssdk.core.internal.handler.BaseClientHandler.finalizeSdkHttpFullRequest(BaseClientHandler.java:89) 在software.amazon .awssdk.core.internal.handler.BaseSyncClientHandler。doExecute(BaseSyncClientHandler.java:145) 在 software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.lambda$execute$1(BaseSyncClientHandler.java:114) 在 software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.measureApiCallSuccess (BaseSyncClientHandler.java:169) 在 software.amazon.awssdk.core.internal.handler.BaseSyncClientHandler.execute(BaseSyncClientHandler.java:95) 在 software.amazon.awssdk.core.client.handler.SdkSyncClientHandler.execute(SdkSyncClientHandler.java :45) 在 software.amazon.awssdk.awscore.client.handler.AwsSyncClientHandler.execute(AwsSyncClientHandler.java:55) 在 software.amazon.awssdk.services.s3.DefaultS3Client.putObject(DefaultS3Client.java:8829) 在 xxx。 db.repo.message.MessageRepositoryImpl.uploadToS3(MessageRepositoryImpl.java:110) 在 xxx.db.repo.message.MessageRepositoryImpl。doWrite(MessageRepositoryImpl.java:82) 在 xxx.db.repo.message.MessageRepositoryImpl.write(MessageRepositoryImpl.java:56) 在 xxx.service.upload.MessageUploadServiceImpl.uploadMessages(MessageUploadServiceImpl.java:132) 在 xxx.service.upload .MessageUploadServiceImpl.doUploadMessages(MessageUploadServiceImpl.java:113) 在 xxx.service.upload.MessageUploadServiceImpl.upload(MessageUploadServiceImpl.java:72) 在 xxx.domain.UploadDomainManagerImpl.upload(UploadDomainManagerImpl.java:37) 在 xxx.rest.MessageUploadRestController。 uploadMessages(MessageUploadRestController.java:31) 在 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 在 java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) 在 java. base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 在 java.base/java.lang.reflect.Method.invoke(Method.java:566) 在 org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:197) 在 org.springframework .web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:141) at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:106) at org.springframework.web.servlet .mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:894) 在 org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:808) 在 org.springframework.web.servlet .mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87) 在 org。springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1063) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:963) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet. java:1006) 在 org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:681) 在 org.springframework.web.servlet.FrameworkServlet .service(FrameworkServlet.java:883) 在 javax.servlet.http.HttpServlet.service(HttpServlet.java:764) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:228) 在 org.apache。 catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163) 在 org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53) 在 org.apache。catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163) at org.springframework.web.servlet.resource.ResourceUrlEncodingFilter.doFilter(ResourceUrlEncodingFilter. java:67) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163) 在 org.springframework.web.filter .RequestContextFilter.doFilterInternal(RequestContextFilter.java:100) 在 org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190) 在org.apache.catalina.core.ApplicationFilterChain。doFilter(ApplicationFilterChain.java:163) 在 org.springframework.web.filter.FormContentFilter.doFilterInternal(FormContentFilter.java:93) 在 org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) 在 org.apache .catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163) at com.xxx.framework.web.filter.OAuth2AuthFilter.authorizeIfNeeded(OAuth2AuthFilter .java:129) 在 com.xxx.framework.web.filter.OAuth2AuthFilter.doFilterInternal(OAuth2AuthFilter.java:81) 在 org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) 在 org.apache。 catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190) 在 org.apache.catalina.core.ApplicationFilterChain。doFilter(ApplicationFilterChain.java:163) at com.xxx.framework.web.filter.IntegrationLogFilter.doFilterInternal(IntegrationLogFilter.java:68) at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) at org .apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163) 在 com.xxx.framework.web.filter.TispContextFilter.doFilterInternal (TispContextFilter.java:79) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190) 在 org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) 在 org.apache。 catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163) 在 org.springframework.boot.actuate.metrics。web.servlet.WebMvcMetricsFilter.doFilterInternal(WebMvcMetricsFilter.java:97) 在 org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:119) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java: 190) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163) 在 org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:201) 在 org.springframework.web.filter.OncePerRequestFilter .doFilter(OncePerRequestFilter.java:119) 在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163) 在 io。 opentracing.contrib.web.servlet.filter.TracingFilter.doFilter(TracingFilter.java:189)在 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:190) 在 org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:163) 在 org.apache.catalina.core.StandardWrapperValve .invoke(StandardWrapperValve.java:202) 在 org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97) 在 org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542) 在 org. apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143) 在 org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92) 在 org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve. java:78) 在 org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:357) 在 org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:382)在 org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65) 在 org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:893) 在 org.apache.tomcat.util.net.NioEndpoint $SocketProcessor.doRun(NioEndpoint.java:1723) at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java :1128) 在 java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) 在 org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) 在java.base/java.lang.Thread.run(Thread.java:829)apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1723) 在 org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) 在 java.base/java.util。 concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) 在 java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) 在 org.apache.tomcat.util.threads.TaskThread$WrappingRunnable。在 java.base/java.lang.Thread.run(Thread.java:829) 运行(TaskThread.java:61)apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1723) 在 org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49) 在 java.base/java.util。 concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) 在 java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) 在 org.apache.tomcat.util.threads.TaskThread$WrappingRunnable。在 java.base/java.lang.Thread.run(Thread.java:829) 运行(TaskThread.java:61)thread.TaskThread$WrappingRunnable.run(TaskThread.java:61) 在 java.base/java.lang.Thread.run(Thread.java:829)thread.TaskThread$WrappingRunnable.run(TaskThread.java:61) 在 java.base/java.lang.Thread.run(Thread.java:829)
那么我的配置有什么问题,所以我解决了这个 SIGNING_REGION_SCOPE 问题?
keystore - 将 AWS IoT SDK v2 与来自 java 密钥库的证书一起使用
我正在使用 AWS IoT SDK for Java v2(基于公共运行时)将 AWS 连接添加到现有 Java 应用程序,并且我想使用现有密钥库中的证书和私钥来建立与 MQTT 的连接。
对于旧的 v1(基于 Paho)库,有一个 API 和相当简单的说明:https ://github.com/aws/aws-iot-device-sdk-java#load-keystore-from-file-to -initialize-the-client,但我想遵循建议并尽可能使用更新/更好支持的 v2 库。看起来 v2 库没有用于与 Java 密钥库交互的简单 API——最接近的是采用 PEM 格式字符串的 newMtlsBuilder 函数。
最好的答案是我必须使用 Java 密钥库 API 加载证书,然后自己将它们转换为 PEM,例如将 x509 证书写入 Java 中的 PEM 格式字符串?? 还是使用 v1 SDK,即使它已被弃用?还是我在 v2 SDK 中遗漏了什么?
更广泛地说,任何人都可以推荐一个面向 Java 的 CRT 概念和用法的优秀文章吗?或者也许是关于如何从 SDK 的 v1 迁移到 v2 的指南?C 库的 github 文档有些有用(例如https://github.com/awslabs/aws-c-io)但我对 C 不是很熟悉,弄清楚 C 概念的方式有点棘手/方法/结构将映射到 Java 绑定。
java - AWS ProfileCredential 提供 AWS SDK1 VS AWS SDK 2 JAVA
有人可以解释下面两个库之间的区别 -
我有两段代码,都试图在帐户中列出 s3 存储桶。
JAVA 1 库。使用来自 com.amazonaws.auth.profile.ProfileCredentialsProvider的 CredentialProvider ;
使用 CredentialProvider 的 Java 2 库
软件.amazon.awssdk.auth.credentials.ProfileCredentialsProvider;
Java2 库调用成功,我可以看到正在打印的桶数。
使用 Java 1 库时,总是无法从配置加载配置文件。
ENV 变量已设置。我得到以下异常:
java - 如何从 DynamoDB 表中的项目中删除属性?
我有一个项目,我想使用 DynamoDB 中的 SDK 2.x 删除其特定属性。我该怎么做呢?我正在使用增强型 DynamoDB 进行表管理。这是一个代码示例:
我将不胜感激使用增强型 DynamoDB 客户端的解决方案。
amazon-dynamodb - DynamoDbFlatten 上的 GSI 汇总属性
我正在使用 dynamodb 增强客户端并定义了一些分布在不同 java 对象中的模型。为此,我使用了@DynamoDBFlatten 注释。DynamoDBFlatten 注释的文档提到“唯一的限制是属性在滚动时不能具有相同的名称,并且不能有多个分区键、排序键或表名。”</p>
我想在汇总的类中声明 GSI,但是这样做会引发错误 - “表没有指定的索引”</p>
代码示例:
有什么方法可以达到同样的效果吗?
amazon-dynamodb - LocalSecondaryIndex 使用 dynamodb 增强客户端
Dynamodb 增强客户端具有全局二级索引的注释,但没有提及本地二级索引。有人可以建议将 localsecondaryindex 与 dynamodb 增强客户端一起使用的最佳方法是什么?
java - 将对象上传到 Amazon S3 时多次超时
我在 Spring Boot 项目中通过 AWS Java SDK V2 与 AWS 通信。
我有一个每天运行 4 次(间隔 6 小时)的计划任务,它将从数据库中提取一些信息并将它们放入 Amazon S3 存储桶中的 CSV 文件中。
我遇到的问题是这个任务有时会成功放置文件,有时它根本不起作用,我收到以下错误:Unable to load credentials from service endpoint.
抛出异常表明SockettimeoutException: connect timeout
这是我在 Amazon S3 中编写的代码:
这也是我用于配置的代码:
更新:添加 S3Client 的代码
更新 2:异常的堆栈跟踪
amazon-web-services - 什么是 setSdkClientExecutionTimeout 的 AWS SDKV2 等效项
我在这里有一个保证执行超时设置的客户端(可以根据请求进行配置)
但我找不到 SDKV2 的等价物,同步或异步。
我想知道 SO 或 AWS 中是否有人会知道这一点。这是故意的功能下降吗?还是我错过了其他一些设置。
aws-sdk-java-2.0 - DynamoDBAttribute 与 DynamoDbEnhancedAsyncClient 不起作用
看起来重命名字段@DynamoDBAttribute
不适用于新的DynamoDbEnhancedAsyncClient
.
实体:
DynamoDBAsyncClient:
桌子:
当我尝试CreatTable
:
我看到一个带有字段名称id
而不是unique_id
.
有没有人解决过这个问题或遇到过同样的问题?我没有尝试过同步版本,但我很好奇是否有人让它与同步版本一起使用,即使用DynamoDbEnhancedClient
and DynamoDbTable
?
我正在使用software.amazon.awssdk:dynamodb-enhanced:2.17.75
图书馆。