![](/img/trans.png)
[英]Creating an Amazon S3 bucket Using the AWS SDK for Java v2 : Exception in thread "main" java.lang.NoClassDefFoundError
[英]Issuing uploading file to Amazon S3 Bucket. using the AWS SDK for Java v2
我正在尝试使用适用于 Java 的 AWS SDK 2.0 将文件上传到 AWS S3 存储桶,但尝试执行此操作时出现错误。
software.amazon.awssdk.services.s3.model.S3Exception: The request signature we calculated does not match the signature you provided. Check your key and signing method.
我不确定我错过了什么。 我已经尝试添加一个密钥,但我什至不确定我需要在那里放什么,认为它只是一个名称来指代已上传的内容。
private S3Client s3Client;
private void upload() {
setUpS3Client();
PutObjectRequest putObjectRequest = PutObjectRequest.builder()
.bucket(bucketName) //name of the bucket i am trying to upload to
.key("testing") //No idea what goes in here.
.build();
byte[] objectByteArray = getObjectByteArray(bucketRequest.getPathToFile()); //bucketRequest just holds the data that will be sent
PutObjectResponse putObjectResponse = s3Client.putObject(putObjectRequest, RequestBody.fromBytes(objectByteArray));
}
private void setUpS3Client() {
Region region = Region.AF_SOUTH_1;
s3Client = S3Client.builder()
.region(region)
.credentialsProvider(createStaticCredentialsProvider())
.build();
this.s3Client = s3Client;
}
有谁知道这个错误指的是什么以及我需要更改什么才能上传文件? 任何帮助将不胜感激。
这个 Java 示例运行良好。 这是此 Java 代码工作的屏幕截图:
你说:
key("testing") //No idea what goes in here.
.build();
键是要更新的对象的名称。 例如, book.pdf用于上传 PDF 文件。 Java AWS V2 示例的所有输入都在开始时记录在 main 方法中。
现在解决您的问题 - 确保您在 POM 文件中具有所需的依赖项。 使用位于此处的 POM 文件:
https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2/example_code/s3
同样在每个程序开始时,都有一个指向Java V2 开发指南的链接,该指南讨论了设置您的 DEV 环境,包括您的信用。
问题是我的凭据。 我提供的秘密访问密钥不正确。 :(
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.