@@ -729,6 +729,72 @@ func (client Client) DeleteBucketEncryption(bucketName string) error {
729729 return checkRespCode (resp .StatusCode , []int {http .StatusNoContent })
730730}
731731
732+ //
733+ // SetBucketTagging add tagging to bucket
734+ // bucketName name of bucket
735+ // tagging tagging to be added
736+ // error nil if success, otherwise error
737+ func (client Client ) SetBucketTagging (bucketName string , tagging Tagging ) error {
738+ var err error
739+ var bs []byte
740+ bs , err = xml .Marshal (tagging )
741+
742+ if err != nil {
743+ return err
744+ }
745+
746+ buffer := new (bytes.Buffer )
747+ buffer .Write (bs )
748+
749+ contentType := http .DetectContentType (buffer .Bytes ())
750+ headers := map [string ]string {}
751+ headers [HTTPHeaderContentType ] = contentType
752+
753+ params := map [string ]interface {}{}
754+ params ["tagging" ] = nil
755+ resp , err := client .do ("PUT" , bucketName , params , headers , buffer )
756+ if err != nil {
757+ return err
758+ }
759+ defer resp .Body .Close ()
760+ return checkRespCode (resp .StatusCode , []int {http .StatusOK })
761+ }
762+
763+ // GetBucketTagging get tagging of the bucket
764+ // bucketName name of bucket
765+ // error nil if success, otherwise error
766+ func (client Client ) GetBucketTagging (bucketName string ) (GetBucketTaggingResult , error ) {
767+ var out GetBucketTaggingResult
768+ params := map [string ]interface {}{}
769+ params ["tagging" ] = nil
770+ resp , err := client .do ("GET" , bucketName , params , nil , nil )
771+
772+ if err != nil {
773+ return out , err
774+ }
775+ defer resp .Body .Close ()
776+
777+ err = xmlUnmarshal (resp .Body , & out )
778+ return out , err
779+ }
780+
781+ //
782+ // DeleteBucketTagging delete bucket tagging
783+ // bucketName name of bucket
784+ // error nil if success, otherwise error
785+ //
786+ func (client Client ) DeleteBucketTagging (bucketName string ) error {
787+ params := map [string ]interface {}{}
788+ params ["tagging" ] = nil
789+ resp , err := client .do ("DELETE" , bucketName , params , nil , nil )
790+
791+ if err != nil {
792+ return err
793+ }
794+ defer resp .Body .Close ()
795+ return checkRespCode (resp .StatusCode , []int {http .StatusNoContent })
796+ }
797+
732798// GetBucketStat get bucket stat
733799// bucketName the bucket name.
734800// error it's nil if no error, otherwise it's an error object.
0 commit comments