Преглед изворни кода

Merge pull request #20 from aliyun/sample-dev

sample
baiyubin пре 9 година
родитељ
комит
9372efb560

+ 1 - 1
sample/append_object.go

@@ -12,7 +12,7 @@ import (
 	"github.com/aliyun/aliyun-oss-go-sdk/oss"
 )
 
-// AppendObjectSample Append Object Sample
+// AppendObjectSample 展示了追加上传的用法
 func AppendObjectSample() {
 	// 创建Bucket
 	bucket, err := GetTestBucket(bucketName)

+ 1 - 1
sample/bucket_acl.go

@@ -6,7 +6,7 @@ import (
 	"github.com/aliyun/aliyun-oss-go-sdk/oss"
 )
 
-// BucketACLSample Set/Get Bucket ACL Sample
+// BucketACLSample 展示了如何读取/设置存储空间的权限(Bucket ACL)
 func BucketACLSample() {
 	// New Client
 	client, err := oss.New(endpoint, accessID, accessKey)

+ 1 - 1
sample/bucket_cors.go

@@ -6,7 +6,7 @@ import (
 	"github.com/aliyun/aliyun-oss-go-sdk/oss"
 )
 
-// BucketCORSSample Set/Get/Delete Bucket CORS Sample
+// BucketCORSSample 展示了如何设置/读取/清除存储空间的跨域访问(Bucket CORS)
 func BucketCORSSample() {
 	// New Client
 	client, err := oss.New(endpoint, accessID, accessKey)

+ 1 - 1
sample/bucket_lifecycle.go

@@ -6,7 +6,7 @@ import (
 	"github.com/aliyun/aliyun-oss-go-sdk/oss"
 )
 
-// BucketLifecycleSample Set/Get/Delete Bucket Lifecycle Sample
+// BucketLifecycleSample 展示了如何设置/读取/清除存储空间中文件的生命周期(Bucket Lifecycle)
 func BucketLifecycleSample() {
 	// New Client
 	client, err := oss.New(endpoint, accessID, accessKey)

+ 1 - 1
sample/bucket_logging.go

@@ -6,7 +6,7 @@ import (
 	"github.com/aliyun/aliyun-oss-go-sdk/oss"
 )
 
-// BucketLoggingSample Set/Get/Delete Bucket Logging Sample
+// BucketLoggingSample 展示了如何设置/读取/清除存储空间的日志(Bucket Logging)
 func BucketLoggingSample() {
 	// New Client
 	client, err := oss.New(endpoint, accessID, accessKey)

+ 1 - 1
sample/bucket_referer.go

@@ -6,7 +6,7 @@ import (
 	"github.com/aliyun/aliyun-oss-go-sdk/oss"
 )
 
-// BucketRefererSample Set/Get Bucket Referer Sample
+// BucketRefererSample 展示了如何设置/读取/清除存储空间的白名单(Bucket Referer)
 func BucketRefererSample() {
 	// New Client
 	client, err := oss.New(endpoint, accessID, accessKey)

+ 1 - 1
sample/cname_sample.go

@@ -8,7 +8,7 @@ import (
 	"github.com/aliyun/aliyun-oss-go-sdk/oss"
 )
 
-// CnameSample Cname Sample
+// CnameSample 展示了Cname的用法
 func CnameSample() {
 	// NewClient
 	client, err := oss.New(endpoint4Cname, accessID4Cname, accessKey4Cname,

+ 26 - 1
sample/copy_object.go

@@ -6,7 +6,7 @@ import (
 	"github.com/aliyun/aliyun-oss-go-sdk/oss"
 )
 
-// CopyObjectSample Copy Object Sample
+// CopyObjectSample 展示了拷贝文件的用法
 func CopyObjectSample() {
 	// 创建Bucket
 	bucket, err := GetTestBucket(bucketName)
@@ -79,6 +79,31 @@ func CopyObjectSample() {
 	}
 	fmt.Println("meta:", meta)
 
+	// 场景6:大文件分片拷贝,支持并发、断点续传功能。
+	// 分片上传,分片大小为100K。默认使用不使用并发上传,不使用断点续传。
+	err = bucket.CopyFile(bucketName, objectKey, descObjectKey, 100*1024)
+	if err != nil {
+		HandleError(err)
+	}
+
+	// 分片大小为100K,3个协程并发拷贝。
+	err = bucket.CopyFile(bucketName, objectKey, descObjectKey, 100*1024, oss.Routines(3))
+	if err != nil {
+		HandleError(err)
+	}
+
+	// 分片大小为100K,3个协程并发拷贝,使用断点续传拷贝文件。
+	err = bucket.CopyFile(bucketName, objectKey, descObjectKey, 100*1024, oss.Routines(3), oss.Checkpoint(true, ""))
+	if err != nil {
+		HandleError(err)
+	}
+
+	// 断点续传功能需要使用本地文件,记录哪些分片已经上传。该文件路径可以Checkpoint的第二个参数指定,如果为空,则为当前目录下的{descObjectKey}.cp。
+	err = bucket.CopyFile(bucketName, objectKey, descObjectKey, 100*1024, oss.Checkpoint(true, localFile+".cp"))
+	if err != nil {
+		HandleError(err)
+	}
+
 	// 删除object和bucket
 	err = DeleteTestBucketAndObject(bucketName)
 	if err != nil {

+ 1 - 1
sample/create_bucket.go

@@ -6,7 +6,7 @@ import (
 	"github.com/aliyun/aliyun-oss-go-sdk/oss"
 )
 
-// CreateBucketSample Create Bucket Sample
+// CreateBucketSample 展示了如何创建存储空间
 func CreateBucketSample() {
 	// New Client
 	client, err := oss.New(endpoint, accessID, accessKey)

+ 1 - 1
sample/delete_object.go

@@ -7,7 +7,7 @@ import (
 	"github.com/aliyun/aliyun-oss-go-sdk/oss"
 )
 
-// DeleteObjectSample Delete Object Sample
+// DeleteObjectSample 展示了删除单个文件、批量删除文件的方法
 func DeleteObjectSample() {
 	// 创建Bucket
 	bucket, err := GetTestBucket(bucketName)

+ 1 - 1
sample/get_object.go

@@ -10,7 +10,7 @@ import (
 	"github.com/aliyun/aliyun-oss-go-sdk/oss"
 )
 
-// GetObjectSample Get Object Sample
+// GetObjectSample 展示了流式下载、范围下载、断点续传下载的用法
 func GetObjectSample() {
 	// 创建Bucket
 	bucket, err := GetTestBucket(bucketName)

+ 2 - 1
sample/list_buckets.go

@@ -2,10 +2,11 @@ package sample
 
 import (
 	"fmt"
+
 	"github.com/aliyun/aliyun-oss-go-sdk/oss"
 )
 
-// ListBucketsSample List Buckets Sample
+// ListBucketsSample 展示了列举存储空间的用法,包括默认参数列举、指定参数列举
 func ListBucketsSample() {
 	var myBuckets = []string{
 		"my-bucket-1",

+ 2 - 1
sample/list_objects.go

@@ -2,10 +2,11 @@ package sample
 
 import (
 	"fmt"
+
 	"github.com/aliyun/aliyun-oss-go-sdk/oss"
 )
 
-// ListObjectsSample List Objects Sample
+// ListObjectsSample 展示了列举文件的用法,包括默认参数列举、指定参数列举
 func ListObjectsSample() {
 	var myObjects = []Object{
 		{"my-object-1", ""},

+ 1 - 1
sample/new_bucket.go

@@ -7,7 +7,7 @@ import (
 	"github.com/aliyun/aliyun-oss-go-sdk/oss"
 )
 
-// NewBucketSample New Bucket Sample
+// NewBucketSample 展示了如何初始化Client、Bucket
 func NewBucketSample() {
 	// New Client
 	client, err := oss.New(endpoint, accessID, accessKey)

+ 1 - 1
sample/object_acl.go

@@ -7,7 +7,7 @@ import (
 	"github.com/aliyun/aliyun-oss-go-sdk/oss"
 )
 
-// ObjectACLSample Set/Get Object ACL Sample
+// ObjectACLSample 展示了如何设置、读取文件权限(object acl)
 func ObjectACLSample() {
 	// 创建Bucket
 	bucket, err := GetTestBucket(bucketName)

+ 1 - 1
sample/object_meta.go

@@ -7,7 +7,7 @@ import (
 	"github.com/aliyun/aliyun-oss-go-sdk/oss"
 )
 
-// ObjectMetaSample Set/Get Object Meta Sample
+// ObjectMetaSample 展示了如何设置、读取文件元数据(object meta)
 func ObjectMetaSample() {
 	// 创建Bucket
 	bucket, err := GetTestBucket(bucketName)

+ 1 - 1
sample/put_object.go

@@ -9,7 +9,7 @@ import (
 	"github.com/aliyun/aliyun-oss-go-sdk/oss"
 )
 
-// PutObjectSample Put Object Sample
+// PutObjectSample 展示了简单上传、断点续传的使用方法
 func PutObjectSample() {
 	// 创建Bucket
 	bucket, err := GetTestBucket(bucketName)