通过HeadObject方法可以只获取文件元信息而不获取文件的实体。
获取文件元信息代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | // 创建同步获取文件元信息请求。 HeadObjectRequest head = new HeadObjectRequest( "<bucketName>" , "<objectKey>" ); // 获取文件元信息。 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(); //等待任务完成。 |