下载文件时,您可以指定一个或多个限定条件。如果满足限定条件,则下载文件;如果不满足限定条件,则返回错误,且不下载文件。
您可以使用的限定条件如下:
参数 | 描述 |
---|---|
If-Modified-Since | 如果指定的时间早于实际修改时间,则正常传输文件,否则返回错误(304 Not modified)。 |
If-Unmodified-Since | 如果指定的时间等于或者晚于文件实际修改时间,则正常传输文件,否则返回错误(412 Precondition failed)。 |
If-Match | 如果指定的ETag和OSS文件的ETag匹配,则正常传输文件,否则返回错误(412 Precondition failed)。 |
If-None-Match | 如果指定的ETag和OSS文件的ETag不匹配,则正常传输文件,否则返回错误(304 Not modified)。 |
If-Modified-Since和If-Unmodified-Since可以同时存在。If-Match和If-None-Match可以同时存在。
ETag可以通过ossClient.getObjectMeta方法获取。
以下代码用于限定条件下载:
public void testGetObjectWithHeaders() throws Exception { GetObjectRequest request = new GetObjectRequest(bucketName, objectName); request.setRequestHeaders(...); OSSAsyncTask task = oss.asyncGetObject(request, getCallback); task.waitUntilFinished(); GetObjectRequest rq = getCallback.request; GetObjectResult result = getCallback.result; }