github.com/aliyun/aliyun-oss-go-sdk@v3.0.2+incompatible/sample/delete_object.go (about)

     1  package sample
     2  
     3  import (
     4  	"fmt"
     5  	"strings"
     6  
     7  	"github.com/aliyun/aliyun-oss-go-sdk/oss"
     8  )
     9  
    10  // DeleteObjectSample shows how to delete single file or multiple files
    11  func DeleteObjectSample() {
    12  	// Create a bucket
    13  	bucket, err := GetTestBucket(bucketName)
    14  	if err != nil {
    15  		HandleError(err)
    16  	}
    17  
    18  	var val = "抽刀断水水更流,举杯销愁愁更愁。 人生在世不称意,明朝散发弄扁舟。"
    19  
    20  	// Case 1: Delete an object
    21  	err = bucket.PutObject(objectKey, strings.NewReader(val))
    22  	if err != nil {
    23  		HandleError(err)
    24  	}
    25  
    26  	err = bucket.DeleteObject(objectKey)
    27  	if err != nil {
    28  		HandleError(err)
    29  	}
    30  
    31  	// Case 2: Delete multiple Objects
    32  	err = bucket.PutObject(objectKey+"1", strings.NewReader(val))
    33  	if err != nil {
    34  		HandleError(err)
    35  	}
    36  
    37  	err = bucket.PutObject(objectKey+"2", strings.NewReader(val))
    38  	if err != nil {
    39  		HandleError(err)
    40  	}
    41  
    42  	delRes, err := bucket.DeleteObjects([]string{objectKey + "1", objectKey + "2"})
    43  	if err != nil {
    44  		HandleError(err)
    45  	}
    46  	fmt.Println("Del Res:", delRes)
    47  
    48  	lsRes, err := bucket.ListObjects()
    49  	if err != nil {
    50  		HandleError(err)
    51  	}
    52  	fmt.Println("Objects:", getObjectsFormResponse(lsRes))
    53  
    54  	// Case 3: Delete multiple objects and it will return deleted objects in detail mode which is by default.
    55  	err = bucket.PutObject(objectKey+"1", strings.NewReader(val))
    56  	if err != nil {
    57  		HandleError(err)
    58  	}
    59  
    60  	err = bucket.PutObject(objectKey+"2", strings.NewReader(val))
    61  	if err != nil {
    62  		HandleError(err)
    63  	}
    64  
    65  	delRes, err = bucket.DeleteObjects([]string{objectKey + "1", objectKey + "2"},
    66  		oss.DeleteObjectsQuiet(false))
    67  	if err != nil {
    68  		HandleError(err)
    69  	}
    70  	fmt.Println("Detail Del Res:", delRes)
    71  
    72  	lsRes, err = bucket.ListObjects()
    73  	if err != nil {
    74  		HandleError(err)
    75  	}
    76  	fmt.Println("Objects:", getObjectsFormResponse(lsRes))
    77  
    78  	// Case 4: Delete multiple objects and returns undeleted objects in quiet mode
    79  	err = bucket.PutObject(objectKey+"1", strings.NewReader(val))
    80  	if err != nil {
    81  		HandleError(err)
    82  	}
    83  
    84  	err = bucket.PutObject(objectKey+"2", strings.NewReader(val))
    85  	if err != nil {
    86  		HandleError(err)
    87  	}
    88  
    89  	delRes, err = bucket.DeleteObjects([]string{objectKey + "1", objectKey + "2"}, oss.DeleteObjectsQuiet(true))
    90  	if err != nil {
    91  		HandleError(err)
    92  	}
    93  	fmt.Println("Sample Del Res:", delRes)
    94  
    95  	lsRes, err = bucket.ListObjects()
    96  	if err != nil {
    97  		HandleError(err)
    98  	}
    99  	fmt.Println("Objects:", getObjectsFormResponse(lsRes))
   100  
   101  	// Delete object and bucket
   102  	err = DeleteTestBucketAndObject(bucketName)
   103  	if err != nil {
   104  		HandleError(err)
   105  	}
   106  
   107  	fmt.Println("DeleteObjectSample completed")
   108  }