java - 从AWS下载带有特殊字符 ":"的文件

标签 java amazon-web-services

我从 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/

相关文章:

python - 监控 EC2 上每个域的带宽、内存、CPU

amazon-web-services - AWS RDS 错误 : Failed to retrieve account attributes, 某些控制台功能可能会受到影响

amazon-web-services - 如何创建 s3 存储桶子目录(无服务器)?

java - 循环遍历结果集以按组生成平均值

java - Matlab中多行注释的正则表达式

java - 将webapp的资源部署到maven存储库?

java - 从 Cursor 创建一个数组

amazon-web-services - X-Amz-Expires 是否是对 AWS 的请求所需的 header /参数?

java - 如何基于java应用程序内存扩展aws ec2集群

java - 无法从 Set<Map.Entry<String,capture#2-of 转换?将 A>> 扩展为 Set<Map.Entry<String,?延伸A>>