@@ -7196,3 +7196,216 @@ func TestBucketStyle(t *testing.T) {
7196
7196
assert .Equal (t , "0015-00000101" , serr .EC )
7197
7197
assert .NotEmpty (t , serr .RequestID )
7198
7198
}
7199
+
7200
+ func TestBucketReplication (t * testing.T ) {
7201
+ after := before (t )
7202
+ defer after (t )
7203
+ //TODO
7204
+ bucketName := bucketNamePrefix + randLowStr (6 )
7205
+ request := & PutBucketRequest {
7206
+ Bucket : Ptr (bucketName ),
7207
+ }
7208
+ client := getDefaultClient ()
7209
+ _ , err := client .PutBucket (context .TODO (), request )
7210
+ assert .Nil (t , err )
7211
+
7212
+ targetBucketName := bucketNamePrefix + "-target-" + randLowStr (6 )
7213
+ request = & PutBucketRequest {
7214
+ Bucket : Ptr (targetBucketName ),
7215
+ }
7216
+ client1 := getClient ("cn-beijing" , "http://oss-cn-beijing.aliyuncs.com" )
7217
+ _ , err = client1 .PutBucket (context .TODO (), request )
7218
+ assert .Nil (t , err )
7219
+
7220
+ putRequest := & PutBucketReplicationRequest {
7221
+ Bucket : Ptr (bucketName ),
7222
+ ReplicationConfiguration : & ReplicationConfiguration {
7223
+ []ReplicationRule {
7224
+ {
7225
+ RTC : & ReplicationTimeControl {
7226
+ Status : Ptr ("enabled" ),
7227
+ },
7228
+ Destination : & ReplicationDestination {
7229
+ Bucket : Ptr (targetBucketName ),
7230
+ Location : Ptr ("oss-cn-beijing" ),
7231
+ TransferType : TransferTypeInternal ,
7232
+ },
7233
+ HistoricalObjectReplication : HistoricalObjectReplicationEnabled ,
7234
+ SourceSelectionCriteria : & ReplicationSourceSelectionCriteria {
7235
+ & SseKmsEncryptedObjects {
7236
+ Status : StatusEnabled ,
7237
+ },
7238
+ },
7239
+ },
7240
+ },
7241
+ },
7242
+ }
7243
+ putResult , err := client .PutBucketReplication (context .TODO (), putRequest )
7244
+ assert .Nil (t , err )
7245
+ assert .Equal (t , 200 , putResult .StatusCode )
7246
+ assert .NotEmpty (t , putResult .Headers .Get ("X-Oss-Request-Id" ))
7247
+ time .Sleep (1 * time .Second )
7248
+
7249
+ getRequest := & GetBucketReplicationRequest {
7250
+ Bucket : Ptr (bucketName ),
7251
+ }
7252
+ getResult , err := client .GetBucketReplication (context .TODO (), getRequest )
7253
+ assert .Nil (t , err )
7254
+ assert .Equal (t , 200 , getResult .StatusCode )
7255
+ assert .Equal (t , 1 , len (getResult .ReplicationConfiguration .Rules ))
7256
+ time .Sleep (1 * time .Second )
7257
+
7258
+ getLocationRequest := & GetBucketReplicationLocationRequest {
7259
+ Bucket : Ptr (bucketName ),
7260
+ }
7261
+ getLocationResult , err := client .GetBucketReplicationLocation (context .TODO (), getLocationRequest )
7262
+ assert .Nil (t , err )
7263
+ assert .Equal (t , 200 , getLocationResult .StatusCode )
7264
+ time .Sleep (1 * time .Second )
7265
+
7266
+ getProgressRequest := & GetBucketReplicationProgressRequest {
7267
+ Bucket : Ptr (bucketName ),
7268
+ RuleId : getResult .ReplicationConfiguration .Rules [0 ].ID ,
7269
+ }
7270
+ getProgressResult , err := client .GetBucketReplicationProgress (context .TODO (), getProgressRequest )
7271
+ assert .Nil (t , err )
7272
+ assert .Equal (t , 200 , getProgressResult .StatusCode )
7273
+ assert .Equal (t , 1 , len (getProgressResult .ReplicationProgress .Rules ))
7274
+ time .Sleep (1 * time .Second )
7275
+
7276
+ rtcRequest := & PutBucketRtcRequest {
7277
+ Bucket : Ptr (bucketName ),
7278
+ RtcConfiguration : & RtcConfiguration {
7279
+ RTC : & ReplicationTimeControl {
7280
+ Status : Ptr ("disabled" ),
7281
+ },
7282
+ ID : getResult .ReplicationConfiguration .Rules [0 ].ID ,
7283
+ },
7284
+ }
7285
+ rtcResult , err := client .PutBucketRtc (context .TODO (), rtcRequest )
7286
+ assert .Nil (t , err )
7287
+ assert .Equal (t , 200 , rtcResult .StatusCode )
7288
+ assert .NotEmpty (t , rtcResult .Headers .Get ("X-Oss-Request-Id" ))
7289
+ time .Sleep (1 * time .Second )
7290
+
7291
+ delRequest := & DeleteBucketReplicationRequest {
7292
+ Bucket : Ptr (bucketName ),
7293
+ ReplicationRules : & ReplicationRules {
7294
+ []string {* getResult .ReplicationConfiguration .Rules [0 ].ID },
7295
+ },
7296
+ }
7297
+ delResult , err := client .DeleteBucketReplication (context .TODO (), delRequest )
7298
+ assert .Nil (t , err )
7299
+ assert .Equal (t , 200 , delResult .StatusCode )
7300
+ time .Sleep (1 * time .Second )
7301
+
7302
+ var serr * ServiceError
7303
+ bucketNameNotExist := bucketName + "-not-exist"
7304
+ putRequest = & PutBucketReplicationRequest {
7305
+ Bucket : Ptr (bucketNameNotExist ),
7306
+ ReplicationConfiguration : & ReplicationConfiguration {
7307
+ []ReplicationRule {
7308
+ {
7309
+ RTC : & ReplicationTimeControl {
7310
+ Status : Ptr ("enabled" ),
7311
+ },
7312
+ Destination : & ReplicationDestination {
7313
+ Bucket : Ptr (targetBucketName ),
7314
+ Location : Ptr ("oss-cn-cn-hangzhou" ),
7315
+ TransferType : TransferTypeOssAcc ,
7316
+ },
7317
+ HistoricalObjectReplication : HistoricalObjectReplicationEnabled ,
7318
+ SourceSelectionCriteria : & ReplicationSourceSelectionCriteria {
7319
+ & SseKmsEncryptedObjects {
7320
+ Status : StatusEnabled ,
7321
+ },
7322
+ },
7323
+ },
7324
+ },
7325
+ },
7326
+ }
7327
+ putResult , err = client .PutBucketReplication (context .TODO (), putRequest )
7328
+ assert .NotNil (t , err )
7329
+ errors .As (err , & serr )
7330
+ assert .Equal (t , int (404 ), serr .StatusCode )
7331
+ assert .Equal (t , "NoSuchBucket" , serr .Code )
7332
+ assert .Equal (t , "The specified bucket does not exist." , serr .Message )
7333
+ assert .Equal (t , "0015-00000101" , serr .EC )
7334
+ assert .NotEmpty (t , serr .RequestID )
7335
+ time .Sleep (1 * time .Second )
7336
+
7337
+ getRequest = & GetBucketReplicationRequest {
7338
+ Bucket : Ptr (bucketNameNotExist ),
7339
+ }
7340
+ _ , err = client .GetBucketReplication (context .TODO (), getRequest )
7341
+ assert .NotNil (t , err )
7342
+ serr = & ServiceError {}
7343
+ errors .As (err , & serr )
7344
+ assert .Equal (t , int (404 ), serr .StatusCode )
7345
+ assert .Equal (t , "NoSuchBucket" , serr .Code )
7346
+ assert .Equal (t , "The specified bucket does not exist." , serr .Message )
7347
+ assert .Equal (t , "0015-00000101" , serr .EC )
7348
+ assert .NotEmpty (t , serr .RequestID )
7349
+
7350
+ getLocationRequest = & GetBucketReplicationLocationRequest {
7351
+ Bucket : Ptr (bucketNameNotExist ),
7352
+ }
7353
+ getLocationResult , err = client .GetBucketReplicationLocation (context .TODO (), getLocationRequest )
7354
+ assert .NotNil (t , err )
7355
+ serr = & ServiceError {}
7356
+ errors .As (err , & serr )
7357
+ assert .Equal (t , int (404 ), serr .StatusCode )
7358
+ assert .Equal (t , "NoSuchBucket" , serr .Code )
7359
+ assert .Equal (t , "The specified bucket does not exist." , serr .Message )
7360
+ assert .Equal (t , "0015-00000101" , serr .EC )
7361
+ assert .NotEmpty (t , serr .RequestID )
7362
+
7363
+ getProgressRequest = & GetBucketReplicationProgressRequest {
7364
+ Bucket : Ptr (bucketNameNotExist ),
7365
+ RuleId : getResult .ReplicationConfiguration .Rules [0 ].ID ,
7366
+ }
7367
+ getProgressResult , err = client .GetBucketReplicationProgress (context .TODO (), getProgressRequest )
7368
+ assert .NotNil (t , err )
7369
+ serr = & ServiceError {}
7370
+ errors .As (err , & serr )
7371
+ assert .Equal (t , int (404 ), serr .StatusCode )
7372
+ assert .Equal (t , "NoSuchBucket" , serr .Code )
7373
+ assert .Equal (t , "The specified bucket does not exist." , serr .Message )
7374
+ assert .Equal (t , "0015-00000101" , serr .EC )
7375
+ assert .NotEmpty (t , serr .RequestID )
7376
+
7377
+ rtcRequest = & PutBucketRtcRequest {
7378
+ Bucket : Ptr (bucketNameNotExist ),
7379
+ RtcConfiguration : & RtcConfiguration {
7380
+ RTC : & ReplicationTimeControl {
7381
+ Status : Ptr ("disabled" ),
7382
+ },
7383
+ ID : getResult .ReplicationConfiguration .Rules [0 ].ID ,
7384
+ },
7385
+ }
7386
+ rtcResult , err = client .PutBucketRtc (context .TODO (), rtcRequest )
7387
+ assert .NotNil (t , err )
7388
+ serr = & ServiceError {}
7389
+ errors .As (err , & serr )
7390
+ assert .Equal (t , int (404 ), serr .StatusCode )
7391
+ assert .Equal (t , "NoSuchBucket" , serr .Code )
7392
+ assert .Equal (t , "The specified bucket does not exist." , serr .Message )
7393
+ assert .Equal (t , "0015-00000101" , serr .EC )
7394
+ assert .NotEmpty (t , serr .RequestID )
7395
+
7396
+ delRequest = & DeleteBucketReplicationRequest {
7397
+ Bucket : Ptr (bucketNameNotExist ),
7398
+ ReplicationRules : & ReplicationRules {
7399
+ []string {* getResult .ReplicationConfiguration .Rules [0 ].ID },
7400
+ },
7401
+ }
7402
+ delResult , err = client .DeleteBucketReplication (context .TODO (), delRequest )
7403
+ assert .NotNil (t , err )
7404
+ serr = & ServiceError {}
7405
+ errors .As (err , & serr )
7406
+ assert .Equal (t , int (404 ), serr .StatusCode )
7407
+ assert .Equal (t , "NoSuchBucket" , serr .Code )
7408
+ assert .Equal (t , "The specified bucket does not exist." , serr .Message )
7409
+ assert .Equal (t , "0015-00000101" , serr .EC )
7410
+ assert .NotEmpty (t , serr .RequestID )
7411
+ }
0 commit comments