我在使用这个代码时遇到了一些问题:
public boolean isExists(String key) {
try {
this.s3Client.getObjectMetadata(this.bucketName, key);
return true;
} catch (AmazonServiceException var3) {
return false;
}
}
它总是返回false,即使s3中的“folder”存在(空或非空),会有什么问题?
这个 s3Client
在上面的代码中,只有一个简单的amazons3客户端:
AmazonS3 s3client = AmazonS3ClientBuilder
.standard()
.withCredentials(new AWSStaticCredentialsProvider(credentials))
.withEndpointConfiguration(new AwsClientBuilder.EndpointConfiguration(objectStoreEndpoint, objectStoreRegion))
.build();
检查s3中是否存在文件夹的正确方法是什么?
2条答案
按热度按时间dgenwo3n1#
解决方法是:
一个空的“文件夹”(实际上)将返回1的键计数。
pjngdqdw2#
s3没有文件夹,只有bucket和objects。大多数开发人员使用
/
字符来语义组织对象名,但是s3没有文件系统那样的目录结构。特别是,s3上永远不可能有“空目录”这样的东西。你能做的最接近的就是基于前缀列出。