我是亚马逊服务的新手,我使用amazon s3进行文件存储.我使用以下代码列出对象.
ListObjectsRequest lor = new ListObjectsRequest().withBucketName("BUCKETNAME");
ObjectListing objectListing = amazonS3Client.listObjects(lor);
for (S3ObjectSummary summary: objectListing.getObjectSummaries()) {
fileKeys.add(summary.getKey());
}
Run Code Online (Sandbox Code Playgroud)
我想在单个上面的请求中获取所有对象元数据.
这是有效的吗?
Nee*_*rma 10
没有API可以为您提供对象列表及其元数据.
ListObjectsRequest :此请求返回有关指定存储桶中对象的摘要信息列表.根据请求参数,将返回其他信息,例如,如果指定了分隔符,则返回公共前缀.列表结果始终以字典(字母)顺序返回.
您可以从lisObject返回的objectSummary中获取四个默认元数据: Last Modified, Storage Type, Etag and Size.
要获取对象的元数据,您需要对对象执行HEAD对象请求,或者在对象上调用以下方法:
GetObjectMetadataRequest(String bucketName, String key)
Run Code Online (Sandbox Code Playgroud)
看这个:
ListObjectsRequest listObjectsRequest = new ListObjectsRequest()
.withBucketName(bucketName);
ObjectListing objectListing;
do {
objectListing = s3client.listObjects(listObjectsRequest);
for (S3ObjectSummary objectSummary
: objectListing.getObjectSummaries()) {
/** Default Metadata **/
Date dtLastModified = objectSummary.getLastModified();
String sEtag = objectSummary.getETag();
long lSize = objectSummary.getSize();
String sStorageClass = objectSummary.getStorageClass();
/** To get user defined metadata **/
ObjectMetadata objectMetadata = s3client.getObjectMetadata(bucketName, objectSummary.getKey());
Map userMetadataMap = objectMetadata.getUserMetadata();
Map rowMetadataMap = objectMetadata.getRawMetadata();
}
listObjectsRequest.setMarker(objectListing.getNextMarker());
} while (objectListing.isTruncated());
Run Code Online (Sandbox Code Playgroud)
有关GetObjectMetadataRequest的更多详细信息,请查看此链接.
| 归档时间: |
|
| 查看次数: |
7096 次 |
| 最近记录: |