Backblaze S3 문제: 삭제 후 업로드 중복

그래서 지원팀에 문의했고, 고아(orphan) 파일 문제에 대한 해결책이 있는 것 같습니다. Backblaze 지원팀에서 이렇게 답변했습니다:

여기에는 여러 가지 상황이 복합적으로 작용하고 있습니다. 고객님의 계정을 확인해 본 결과, 버킷의 라이프사이클 규칙이 모든 파일 유지(Keep all files) 로 설정되어 있습니다. 라이프사이클 규칙을 파일의 마지막 버전만 유지(Keep only the last version of the file) 로 변경하면, 숨겨진 파일은 숨겨진 지 24시간 후에 삭제되어 저장 공간이 확보됩니다.

여기에 한 가지 더 추가할 점이 있습니다. S3 호환 서비스를 사용하는 경우, 객체 삭제(object delete)가 호출되면 해당 객체는 숨겨집니다. 그리고 이후 버킷의 라이프사이클 규칙에 따라 삭제되거나 숨겨진 상태로 유지됩니다. 고객님의 경우, 모든 파일 유지 규칙 때문에 파일이 숨겨진 상태로 남아 삭제가 되지 않는 것입니다.

객체 삭제 호출 시 객체가 실제로 삭제되려면, 삭제 호출과 함께 파일 버전 ID를 제공해야 합니다. 하지만 파일이 단순히 숨겨지는 경우 통합(integration)이 이를 수행하지 않는다고 생각합니다.

이러한 파일들이 버킷에서 삭제되려면 Backblaze 계정에 로그인하여 해당 버킷으로 이동한 뒤, 라이프사이클 설정을 파일의 마지막 버전만 유지(Keep only the last version of the file). 로 업데이트해야 합니다. 이렇게 하면 숨겨진 파일이 24시간 후 버킷에서 삭제됩니다.

기본적으로 Backblaze는 새로 생성된 버킷에 대해 “모든 파일 유지” 라이프사이클 규칙을 설정합니다. 아마도 이것이 모든 사용자가 고아 파일 문제로 어려움을 겪는 이유일 것입니다. 라이프사이클 규칙을 "파일의 마지막 버전만 유지"로 변경하면, 파일이 숨겨진 후 24시간이 지나면 고아 파일이 삭제됩니다.

이것이 이 스레드에서 언급할 가치가 있을 것 같습니다: