Java 读取文件名中带句点(.)的S3文件
我试图从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
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有何不同?有一个问题是输入错误,两个文件名都是相同的。