详细解答可以参考官方帮助文档
下载文件时,用户可以指定一个或多个限定条件,所有的限定条件都满足时下载,不满足时报错不下载文件。 可以使用的限定条件如下:
参数 | 说明 |
---|---|
IfModifiedSince | 如果指定的时间早于实际修改时间,则正常传送。否则返回错误。 |
IfUnmodifiedSince | 如果传入参数中的时间等于或者晚于文件实际修改时间,则正常传输文件;否则返回错误。 |
IfMatch | 如果传入期望的ETag和object的 ETag匹配,则正常传输;否则返回错误。 |
IfNoneMatch | 如果传入的ETag值和Object的ETag不匹配,则正常传输;否则返回错误。 |
import "time"
import "github.com/aliyun/aliyun-oss-go-sdk/oss"
client, err := oss.New("Endpoint", "AccessKeyId", "AccessKeySecret")
if err != nil {
// HandleError(err)
}
bucket, err := client.Bucket("my-bucket")
if err != nil {
// HandleError(err)
}
date := time.Date(2015, time.November, 10, 23, 0, 0, 0, time.UTC)
// 限定条件不满足,不下载文件
err = bucket.GetObjectToFile("my-object", "LocalFile", oss.IfModifiedSince(date))
if err == nil {
// HandleError(err)
}
// 满足限定条件,下载文件
err = bucket.GetObjectToFile("my-object", "LocalFile", oss.IfUnmodifiedSince(date))
if err != nil {
// HandleError(err)
}
提示:
- ETag的值可以通过Bucket.GetObjectDetailedMeta获取。
- Bucket.GetObject,Bucket.GetObjectToFile,Bucket.DownloadFile都支持限定条件。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。