我从 aws 下载上述文件时遇到一些问题。 我尝试通过 CouldBerry Explore 和 Java 下载该文件,但失败了。 aws 文档说我需要特殊处理。( https://docs.aws.amazon.com/AmazonS3/latest/dev/UsingMetadata.html ) 那么,你能告诉我如何处理使用“:”下载这个文件吗?
以下是我的文件信息。
文件名:“E:\Home\temp\test-1_20180101.csv”
对象键:“testaws/data/E:\Home\temp\test-1_20180101.csv”
当我尝试通过 CouldBerry Explore 下载文件时,ettro 消息是“我们计算的请求签名与您提供的签名不匹配。请检查您的 key 和签名方法。”
我向您展示了下载文件的 Java 代码
import com.amazonaws.services.s3.AmazonS3;
import com.amazonaws.services.s3.model.ListObjectsRequest;
import com.amazonaws.services.s3.model.ObjectListing;
import com.amazonaws.services.s3.model.S3ObjectSummary;
...
String prefix ="testaws/data/"
ListObjectsRequest request = new ListObjectsRequest().withBucketName(MY_BUCKET_NAME).withPrefix(prefix).withDelimiter("/");
ObjectListing list = s3.listObjects(request);
List<S3ObjectSummary> summary = list.getObjectSummaries();
...
摘要不包含任何内容,因此似乎无法下载文件。 (显然,我成功下载了没有“:”的文件)
最佳答案
我使用 AWS Command-Line Interface (CLI) 对此进行了测试在 Mac 上并成功上传/下载具有该名称的文件。但是,我必须引用名称,以便反斜杠不会被解释为转义字符:
aws s3 cp "s3://my-bucket/testaws/data/E:\Home\temp\test-1_20180101.csv" test.csv
关于java - 从AWS下载带有特殊字符 ":"的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54777074/