0
AWS、特にs3で作業するのは初めてです。私はaws go sdkを使用しています。私はバケットライフサイクルルールを以下の方法で設定しようとしています。AWS:PutBucketLifecycleConfigurationRequestはNotImplementedを返します
func SetLifecycle(svc *s3.S3, bucket , id , status, md5 string) (*s3.PutBucketLifecycleConfigurationOutput, error) {
input := &s3.PutBucketLifecycleConfigurationInput{
Bucket: aws.String(bucket),
LifecycleConfiguration: &s3.BucketLifecycleConfiguration{
Rules: []*s3.LifecycleRule{
{
ID: aws.String(id),
Status: aws.String(status),
},
},
},
}
req, resp := svc.PutBucketLifecycleConfigurationRequest(input)
req.HTTPRequest.Header.Set("Content-Md5", string(md5))
err := req.Send()
return resp, err
}
とテストで上記の方法を呼び出す:私はエラーNotImplemented
を取得しておく
func (suite *HeadSuite) TestLifecycleSet() {
assert := suite
//acl := map[string]string{"Authorization": ""}
bucket := GetBucketName()
err := CreateBucket(svc, bucket)
content := strings.NewReader("Enabled")
h := md5.New()
content.WriteTo(h)
sum := h.Sum(nil)
b := make([]byte, base64.StdEncoding.EncodedLen(len(sum)))
base64.StdEncoding.Encode(b,sum)
md5 := string(b)
_, err = SetLifecycle(svc, bucket, "rule1", "Enabled", md5)
assert.Nil(err)
}
を。なぜこれが起こっていますか?私はもともとputbucketlifecycleのドキュメントを読んだ後に追加したcontent-md5ヘッダーを追加していませんでした。しかし、私はまだエラーが発生します。