版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
详细解答可以参考官方帮助文档
OSS支持可追加的文件类型,通过Bucket.AppendObject
来上传可追加的文件,
调用时需要指定文件追加的位置,对于新创建文件,这个位置是0;对于已经存
在的文件,这个位置必须是追加前文件的长度。
AppendObject
会创建一个可追加的文件;AppendObject
会向文件末尾追加内容。提示:
- 追加上传的示例代码在
sample/append_object.go
。
import "strings"
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)
}
var nextPos int64 = 0
// 第一次追加的位置是0,返回值为下一次追加的位置
nextPos, err = bucket.AppendObject("my-object", strings.NewReader("YourObjectValue"), nextPos)
if err != nil {
// HandleError(err)
}
// 第二次追加
nextPos, err = bucket.AppendObject("my-object", strings.NewReader("YourObjectValue"), nextPos)
if err != nil {
// HandleError(err)
}
// 您还可以进行多次Append
注意:
- 只能向可追加的文件(即通过
AppendObject
创建的文件)追加内容- 可追加的文件不能被拷贝
第一次追加时,即位置开始位置是0的追加,您可以指定文件(Object)的元信息;除了第一次追加,其它追加不能指定元信息。
// 第一次追加指定元信息
nextPos, err = bucket.AppendObject("my-object", strings.NewReader("YourObjectValue"), 0, oss.Meta("MyProp", "MyPropVal"))
if err != nil {
// HandleError(err)
}