Java 读取文件名中带句点(.)的S3文件

Java 读取文件名中带句点(.)的S3文件,java,amazon-s3,aws-sdk,Java,Amazon S3,Aws Sdk,我试图从S3中读取一个文件名中包含句点的文本文件 name1.name2-department.json 下面是我的代码 AmazonS3 amazonS3Client = AmazonS3ClientBuilder .standard() .withRegion(Regions.US_EAST_2) .build(); S3Object s3Object = amazonS3Client.getO

我试图从S3中读取一个文件名中包含句点的文本文件

name1.name2-department.json
下面是我的代码

AmazonS3 amazonS3Client = AmazonS3ClientBuilder
                .standard()
                .withRegion(Regions.US_EAST_2)
                .build();
S3Object s3Object = amazonS3Client.getObject("my-bucket",
                "folder/name1.name2-deptartment.json");
当我尝试执行
getObject
方法时,我得到

Exception in thread "main" com.amazonaws.services.s3.model.AmazonS3Exception: The specified key does not exist. (Service: Amazon S3; Status Code: 404; Error Code: NoSuchKey; Request ID:
但是在读取文件名时不带句点没有问题,例如
name1-dept.json
工作正常


带句号(.)的文件名应按特殊情况处理?AWS支持读取带句点(.)的文件

根据AWS的S3 bucket,“a”是一个特殊字符,通常可以在密钥/文件名中使用。所以我不认为这是你的问题

您说过您正在尝试从文件“name1.name2 department.json”读取文本,但是,当您调用
getObject()
方法时,您正在尝试获取文件“name1.name2-dept.json”。这将导致找不到密钥/文件


确保S3存储桶中的文件名与代码中的文件名匹配。

您是否尝试过使用AWS Java SDK的v2而不是v1?我无法使用AWS SDK的v2,这意味着更改所有其他实现。v2和V1有何不同?有一个问题是输入错误,两个文件名都是相同的。