2016-09-12 6 views

답변

3

awscli 모든 설정을 가지고 있으며 출력 JSON 당신과 함께 필요한 키 프로젝트 jq을 사용할 수 있습니다 : 당신은 자동으로 일정 시간 후 사람들을 제거하기 위해 라이프 사이클 규칙을 설정할 수 있습니다

BUCKETNAME=<xxx> 
aws s3api list-multipart-uploads --bucket $BUCKETNAME \ 
| jq -r '.Uploads[] | "--key \"\(.Key)\" --upload-id \(.UploadId)"' \ 
| while read -r line; do 
    eval "aws s3api abort-multipart-upload --bucket $BUCKETNAME $line"; 
done 
2

을 . 거의 같은 것

import boto3 


s3 = boto3.client('s3') 
try: 
    lifecycle = s3.get_bucket_lifecycle(Bucket='bucket') 
except ClientError: 
    lifecycle = {'Rules': []} 
lifecycle['Rules'].append({ 
    'ID': 'PruneAbandonedMultipartUploads', 
    'Status': 'Enabled', 
    'Prefix': '', 
    'AbortIncompleteMultipartUpload': { 
     'DaysAfterInitiation': 7 
    } 
}) 
s3.put_bucket_lifecycle(Bucket='bucket', LifecycleConfiguration=lifecycle) 

는 CLI에 해당 구성을 추가 :

https://aws.amazon.com/blogs/aws/s3-lifecycle-management-update-support-for-multipart-uploads-and-delete-markers/

가 boto3에서이 작업을 수행하려면 다음은 콘솔에서 작업을 수행하는 방법을 설명하는 블로그 게시물입니다

$ aws s3api get-bucket-lifecycle --bucket bucket > lifecycle.json 
# Edit the lifecycle, adding the same configuration as in the boto3 sample 
$ aws s3api put-bucket-lifecycle --bucket bucket --lifecycle-configuration file://lifecycle.json 

버킷에 라이프 사이클 정책이없는 경우 get-bucket-lifecycleClientError입니다. 강력한 구현은 올바른 오류가 반환되는지 확인합니다.

해당 구성 정책은과 같이 보일 것이다 : 당신은 양자 택일 Minio Client aka mc 그것은 오픈 소스와 AWS S3와 호환 사용할 수 있습니다

{ 
    "Rules": [ 
     { 
      "ID": "PruneAbandonedMultipartUpload", 
      "Status": "Enabled", 
      "AbortIncompleteMultipartUpload": { 
       "DaysAfterInitiation": 7 
      } 
     } 
    ] 
} 
1

.

연결된 버킷에있는 모든 불완전 업로드를 나열합니다.

$ mc ls -I s3/mybucketname 

관련된 S3 버켓으로의 모든 불완전한 업로드를 제거합니다. 강제 옵션을

$ mc rm -I -r --force s3/mybucketname 

I = 불완전 R = 재귀 F는 =

는 도움이되기를 바랍니다.

면책 조항 : Minio로 일합니다.