全部产品
Search
文档中心

对象存储 OSS:Android获取文件元数据

更新时间:Feb 19, 2024

通过HeadObject方法可以只获取文件元数据而不获取文件的实体。

注意事项

  • 文件元数据是对文件的属性描述,包括HTTP标准属性(HTTP Header)和用户自定义元数据(User Meta)两种。您可以通过设置HTTP标准属性来自定义HTTP请求的策略,例如文件(Object)缓存策略、强制下载策略等。您还可以通过设置用户自定义元数据来标识Object的用途或属性等。更多信息,请参见文件元数据

  • Android SDK当前不支持设置和修改文件元数据。

  • 使用本文示例前您需要先通过自定义域名、STS等方式新建OSSClient,具体请参见如何初始化Android端OSSClient实例

示例代码

以下代码用于获取文件元数据。

// 创建同步获取文件元数据请求。
// 依次填写Bucket名称(例如examplebucket)和Object完整路径(例如exampledir/exampleobject.txt)。Object完整路径中不能包含Bucket名称。
HeadObjectRequest head = new HeadObjectRequest("examplebucket", "exampledir/exampleobject.txt");

// 获取文件元数据。
OSSAsyncTask task = oss.asyncHeadObject(head, new OSSCompletedCallback<HeadObjectRequest, HeadObjectResult>() {
    @Override
    public void onSuccess(HeadObjectRequest request, HeadObjectResult result) {
    
    // 获取文件长度。
        Log.d("headObject", "object Size: " + result.getMetadata().getContentLength()); 
    // 获取文件类型。
        Log.d("headObject", "object Content Type: " + result.getMetadata().getContentType()); 
    }

    @Override
    public void onFailure(HeadObjectRequest request, ClientException clientExcepion, ServiceException serviceException) {
        // 请求异常。
        if (clientExcepion != null) {
            // 本地异常,如网络异常等。
            clientExcepion.printStackTrace();
        }
        if (serviceException != null) {
            // 服务异常。
            Log.e("ErrorCode", serviceException.getErrorCode());
            Log.e("RequestId", serviceException.getRequestId());
            Log.e("HostId", serviceException.getHostId());
            Log.e("RawMessage", serviceException.getRawMessage());
        }
    }
});

// task.waitUntilFinished(); //等待任务完成。

相关文档