어떤 이유로 여러 부분 업로드가 중단되거나 완료되지 않을 수 있습니다. 이 경우 제거하기 까다로운 고아 파트가 붙어 있습니다. 다음과 같이 나열 할 수 있습니다 :버킷의 모든 불완전한 멀티 파트 업로드를 중단합니다.
aws s3api list-multipart-uploads --bucket $BUCKETNAME
나는 그들을 모두 중단시킬 길을 찾고 있습니다. 당신을 가정
어떤 이유로 여러 부분 업로드가 중단되거나 완료되지 않을 수 있습니다. 이 경우 제거하기 까다로운 고아 파트가 붙어 있습니다. 다음과 같이 나열 할 수 있습니다 :버킷의 모든 불완전한 멀티 파트 업로드를 중단합니다.
aws s3api list-multipart-uploads --bucket $BUCKETNAME
나는 그들을 모두 중단시킬 길을 찾고 있습니다. 당신을 가정
은 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
을 . 거의 같은 것
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에 해당 구성을 추가 :
가 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-lifecycle
은 ClientError
입니다. 강력한 구현은 올바른 오류가 반환되는지 확인합니다.
해당 구성 정책은과 같이 보일 것이다 : 당신은 양자 택일 Minio Client aka mc 그것은 오픈 소스와 AWS S3와 호환 사용할 수 있습니다
{
"Rules": [
{
"ID": "PruneAbandonedMultipartUpload",
"Status": "Enabled",
"AbortIncompleteMultipartUpload": {
"DaysAfterInitiation": 7
}
}
]
}
.
연결된 버킷에있는 모든 불완전 업로드를 나열합니다.
$ mc ls -I s3/mybucketname
관련된 S3 버켓으로의 모든 불완전한 업로드를 제거합니다. 강제 옵션을
$ mc rm -I -r --force s3/mybucketname
I = 불완전 R = 재귀 F는 =
는 도움이되기를 바랍니다.
면책 조항 : Minio로 일합니다.