2012-09-29 4 views
11

버킷의 객체 파일 이름과 동일한 파일 이름을 사용하여 S3에 파일을 업로드하면 덮어 씁니다. 동일한 파일 이름으로 파일을 덮어 쓰지 않도록하는 옵션은 무엇입니까? 문제점을 해결할 수 있다고 생각하지만 객체는 여전히 덮어 쓰여 있다고 생각하는 버킷에서 버전 관리를 사용할 수있게되었습니다.Amazon S3가 동일한 이름을 가진 객체를 덮어 쓰는 것을 피하십시오.

+0

잘 모르겠지만 이 개체에 대해 읽기 전용으로 ACL을 설정할 수 없습니까? 내 말은, 당신이 업로드 한 각각의 객체에 대한 것입니다. – Prinzhorn

+0

누구나 파일을 볼 수 있기 때문에 ACL을 public으로 설정하고 있습니다. – CyberJunkie

답변

6

위에서 언급 한 내 의견은 작동하지 않습니다. 나는 WRITE ACL이 객체에도 적용될 것이라고 생각했지만 버킷에서만 작동합니다.

버전 관리를 활성화 했으므로 개체를 덮어 쓰지 않습니다. 그러나 GET 요청이나 URL에 버전을 지정하지 않으면 최신 버전이 사용됩니다. 이것은 당신이 S3에 객체를 넣었을 때 객체가 가장 먼저 객체를 검색하기 위해 응답을 알려주는 versionID를 저장할 필요가 있음을 의미합니다.

자세한 내용은 Amazon S3 ACL for read-only and write-once access을 참조하십시오.

+0

고마워요! 나는 그것을 시도 할 것이다. – CyberJunkie

2

제한된 권한으로 IAM 사용자를 구성 할 수도 있습니다. 쓰기는 여전히 쓰기 (즉, 업데이트)이지만 IAM 사용자를 사용하는 것은 모범 사례입니다.

소유자 (즉, "장기 액세스 키 및 비밀 키")는 완전히 비활성화하지 않는 한 항상 완전히 제어 할 수 있습니다.

+0

감사합니다. 나는 그것을 생각하지 않았습니다. 업데이트하거나 덮어 쓸 수없는 사용자는 AWS에서 설정할 수 있다면 이상적입니다. – CyberJunkie

+1

문서를 다시 확인해야합니다. 나는 S3가 _write_와 _update_의 차이를 이해하는지 모르겠다. 기본적으로 (즉, 전체 권한), 쓰기 및 업데이트는 동일한 것으로 취급됩니다. –

1

DB를 사용하여 s3 버킷에있는 모든 파일의 키를 저장하는 경우 여기 제안 해주십시오.

임의의 키를 생성하십시오. null 항목을 허용하는 UNIQUE 제약 조건이있는 필드에 DB 키를 삽입/업데이트 해보십시오. 키가 실패하면 고유 한 키를 얻을 때까지 반복하십시오.

그런 다음 고유 한 키를 사용하여 s3에 파일을 저장하십시오.

관련 문제