获取文件元信息(Object Meta)
文件元信息(Object Meta),是对用户上传到OSS的文件的属性描述,分为两种:HTTP标准属性(HTTP Headers)和User Meta(用户自定义元信息)。 文件元信息可以在各种方式上传或者拷贝文件时进行设置。更多文件元信息的介绍,请参看
文件元信息。
获取文件元信息可以使用OSSClient.getSimplifiedObjectMeta或OSSClient.getObjectMetadata。getSimplifiedObjectMeta只能获取文件的ETag、Size(文件大小)、 LastModified(最后修改时间);getObjectMetadata能获取文件的全部元数据。getSimplifiedObjectMeta更轻量、更快。
- // endpoint以杭州为例,其它region请按实际情况填写
- String endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
- // 云账号AccessKey有所有API访问权限,建议遵循阿里云安全最佳实践,创建并使用RAM子账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建
- String accessKeyId = "<yourAccessKeyId>";
- String accessKeySecret = "<yourAccessKeySecret>";
- // 创建OSSClient实例
- OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
- // 获取文件的部分元信息
- SimplifiedObjectMeta objectMeta = ossClient.getSimplifiedObjectMeta("<bucketName>", "<key>");
- System.out.println(objectMeta.getSize());
- System.out.println(objectMeta.getETag());
- System.out.println(objectMeta.getLastModified());
- // 获取文件的全部元信息
- ObjectMetadata metadata = ossClient.getObjectMetadata("<bucketName>", "<key>");
- System.out.println(metadata.getContentType());
- System.out.println(metadata.getLastModified());
- System.out.println(metadata.getExpirationTime());
- // 关闭client
- ossClient.shutdown();
列出存储空间中的文件
可以通过OSSClient.listObjects列出bucket里的Objects。listObjects有三类参数格式:
- ObjectListing listObjects(String bucketName)
- ObjectListing listObjects(String bucketName, String prefix)
- ObjectListing listObjects(ListObjectsRequest listObjectsRequest)
前两类称为简单列举,最多返回100条object,参数prefix是指定返回Object的前缀。最后一类提供多种过滤功能,可以实现灵活的查询功能。
ObjectListing的参数如下:
提示:
简单列举
列举出Bucket下的Object,最多100条object。
- // endpoint以杭州为例,其它region请按实际情况填写
- String endpoint = "http://oss-cn-hangzhou.aliyuncs.com";
- // 云账号AccessKey有所有API访问权限,建议遵循阿里云安全最佳实践,创建并使用RAM子账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建
- String accessKeyId = "<yourAccessKeyId>";
- String accessKeySecret = "<yourAccessKeySecret>";
- // 创建OSSClient实例
- OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
- // 列举Object
- ObjectListing objectListing = ossClient.listObjects("<bucketName>", "<KeyPrifex>");
- List<OSSObjectSummary> sums = objectListing.getObjectSummaries();
- for (OSSObjectSummary s : sums) {
- System.out.println("\t" + s.getKey());
- }
- // 关闭client
- ossClient.shutdown();
列举出Bucket下的指定前缀的Object,最多100条object。
- ObjectListing objectListing = ossClient.listObjects("<bucketName>", "<KeyPrifex>");
- List<OSSObjectSummary> sums = objectListing.getObjectSummaries();
- for (OSSObjectSummary s : sums) {
- System.out.println("\t" + s.getKey());
- }