我正在尝试使用AWS SDK 2.0将文件上传到AWS S3存储桶Java,但我在尝试这样做时收到错误。
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文件。JavaAWS V2示例的所有输入都记录在main方法的start中。
现在解决您的问题-确保POM文件中具有所需的依赖项。使用位于此处的POM文件:
https://github.com/awsdocs/aws-doc-sdk-examples/tree/main/javav2/example_code/s3
此外,在每个程序的开头,都有一个指向Java V2开发指南的链接,该指南介绍了如何设置开发环境,包括Cred。
问题内容: 实际上,我正在使用带有Angular 2编码的接口的Spring REST API。 我的问题是我无法使用Angular 2上传文件。 我在Java中的Webresources是: 当我通过带有Auth标头等的URL请求调用它时(它具有适用于Chrome的Advanced Rest Client扩展),它完全可以正常工作 证明:(在这种情况下,一切正常) Spring配置文件和Pom依
问题内容: 尝试将文件上传到S3存储桶时遇到问题。一切正常,除了我的文件参数似乎不合适。我正在使用Amazon S3 SDK从Node.js上载到S3。 这些是我的路线设置: 这是items.upload()函数: 将param 设置为类似字符串的效果很好。根据doc,param必须获取 (缓冲区,类型数组,Blob,字符串,ReadableStream)对象数据。 但是,上传文件对象失败,并显示
问题内容: 是否可以使用http put方法将本地文件上传到保管箱?我正在上传文件,但没有文件?(“字节”:0) 如何向文件添加内容? 我的代码如下: 我的文件已成功上传,但没有内容?它是空的!该文档对我来说有点困惑:https : //www.dropbox.com/developers/core/docs#files_put 问题答案: @smarx:我正在发送一个空的HTTP PUT请求,最
问题内容: 我试图了解如何使用Node.js在Firebase Storage中上传文件。我的第一次尝试是使用Firebase库: 但是事实证明,Firebase无法从服务器端上传文件,正如在文档中明确指出的那样: Firebase存储不包含在服务器端Firebase npm模块中。相反,您可以使用gcloud Node.js客户端。 在代码中,您可以使用以下方式访问存储分区: 我们可以在没有Go
我的upload.js文件包含以下代码: 它通过终端工作,但我如何调用它在表单提交按钮点击或只是从不同的文件? 当我尝试的时候,它给我: 无法读取未定义的属性“prototype” 我对NodeJs还很陌生,我真的不知道该怎么做。 Google文档对我一点帮助都没有:/
我在dropbox示例中没有看到任何有用的上传。 你能帮帮我吗?我在用Angularjs。