Jelajahi Sumber

Setting the value of the parameter by the environment variable, And add the storange class cases

alzhang 6 tahun lalu
induk
melakukan
aedbf5f6ab
2 mengubah file dengan 48 tambahan dan 11 penghapusan
  1. 17 11
      sample/config.go
  2. 31 0
      sample/put_object.go

+ 17 - 11
sample/config.go

@@ -1,22 +1,28 @@
 package sample
 
-const (
+import "os"
+
+var (
 	// Sample code's env configuration. You need to specify them with the actual configuration if you want to run sample code
-	endpoint   string = "<endpoint>"
-	accessID   string = "<AccessKeyId>"
-	accessKey  string = "<AccessKeySecret>"
-	bucketName string = "<my-bucket>"
-	kmsID      string = "<KmsID>"
+	endpoint   = os.Getenv("OSS_TEST_ENDPOINT")
+	accessID   = os.Getenv("OSS_TEST_ACCESS_KEY_ID")
+	accessKey  = os.Getenv("OSS_TEST_ACCESS_KEY_SECRET")
+	bucketName = os.Getenv("OSS_TEST_BUCKET")
+	kmsID      = os.Getenv("OSS_TEST_KMS_ID")
 
 	// The cname endpoint
 	// These information are required to run sample/cname_sample
-	endpoint4Cname   string = "<endpoint>"
-	accessID4Cname   string = "<AccessKeyId>"
-	accessKey4Cname  string = "<AccessKeySecret>"
-	bucketName4Cname string = "<my-cname-bucket>"
+	endpoint4Cname   = os.Getenv("OSS_TEST_ENDPOINT")
+	accessID4Cname   = os.Getenv("OSS_TEST_ACCESS_KEY_ID")
+	accessKey4Cname  = os.Getenv("OSS_TEST_ACCESS_KEY_SECRET")
+	bucketName4Cname = os.Getenv("OSS_TEST_CNAME_BUCKET")
+)
+
+const (
 
 	// The object name in the sample code
-	objectKey string = "my-object"
+	objectKey       string = "my-object"
+	objectAppendKey string = "my-object-append"
 
 	// The local files to run sample code.
 	localFile     string = "src/sample/BingWallpaper-2015-11-07.jpg"

+ 31 - 0
sample/put_object.go

@@ -122,6 +122,37 @@ func PutObjectSample() {
 		HandleError(err)
 	}
 
+	// Case 9: Set the storage classes.OSS provides three storage classes: Standard, Infrequent Access, and Archive.
+	// Supported APIs: PutObject, CopyObject, UploadFile, AppendObject...
+	err = bucket.PutObject(objectKey, strings.NewReader(val), oss.ObjectStorageClass("IA"))
+	if err != nil {
+		HandleError(err)
+	}
+
+	// Copy a object in the same bucket, and set object's storage-class to Archive.
+	_, rr := bucket.CopyObject(objectKey, objectKey+"DestArchive", oss.ObjectStorageClass("Archive"))
+	if rr != nil {
+		HandleError(err)
+	}
+
+	// Upload a local file, and set the object's storage-class to 'Archive'.
+	err = bucket.UploadFile(objectKey, localFile, 100*1024, oss.ObjectStorageClass("Archive"))
+	if err != nil {
+		HandleError(err)
+	}
+
+	// Upload a strings, and you can append some strings in the behind of object. but the object is 'Archive' storange class.
+	// An object created with the AppendObject operation is an appendable object. set the object storange-class to 'Archive'.
+	var nextPos int64
+	nextPos, err = bucket.AppendObject(objectAppendKey, strings.NewReader("昨夜雨疏风骤,浓睡不消残酒。试问卷帘人,"), nextPos, oss.ObjectStorageClass("Archive"))
+	if err != nil {
+		HandleError(err)
+	}
+	nextPos, err = bucket.AppendObject(objectAppendKey, strings.NewReader("却道海棠依旧。知否?知否?应是绿肥红瘦。"), nextPos)
+	if err != nil {
+		HandleError(err)
+	}
+
 	// Delete object and bucket
 	err = DeleteTestBucketAndObject(bucketName)
 	if err != nil {