2016-06-28 3 views
2

Amazon S3 스토리지에서 이미지를 삭제하려고하지만 삭제하지 않습니다.Amazon S3 스토리지에서 이미지 삭제

나는 다음과 같은 코드를 사용하고 있습니다 :

var s3 = AWS.S3(awsCredentials); 
s3.deleteObject({ 
    Bucket: MY_BUCKET, 
    Key: myKey 
},function (err,data){}) 

하지만 난 여전히 삭제할 이미지를 유지합니다.

심지어는 s3.deleteObjects 기능을 사용했지만 삭제 된 객체 이름을 반환하지만 저장소를 확인할 때 이미지는 그대로 남아 있습니다.

+0

모든 이미지에서 S3 – error2007s

+0

versionId = null 버전으로 버전을 활성화 했으므로 버전 관리가 올바르게 설정되지 않았습니까? –

+0

삭제 후 삭제 마커가 추가되지 않으면 여전히 null입니다. –

답변

3

이 방법으로 키를 사용해야하며 삭제할 파일의 이름이 아니라 작동시켜야합니다.

var s3 = AWS.S3(awsCredentials); 
s3.deleteObject({ 
    Bucket: MY_BUCKET, 
    Key: 'some/subfolders/nameofthefile1.extension' 
},function (err,data){}) 
+2

실제로 '/some/subfolders/nameofthefile1.extension'형식의 키를 사용했지만 선두 '/'는 필요하지 않았습니다. –

+0

불필요 할뿐만 아니라 잘못되었습니다. S3 규칙은 버킷의 루트가 빈 문자열이며'/'가 아니라는 것입니다. 후속 질문은 존재하지 않는 개체를 삭제하려고 할 때 예외가 발생하지 않는 이유입니다. 당신이 철학적 인 느낌을 가질 때 가장 잘 예상되는 대답은'DELETE'는 멱등수라는 것입니다. 'DELETE/foo HTTP/1.1' 후에/foo는 더 이상 존재하지 않습니다. 이전의 존재 여부에 관계없이 요청 이후에는 존재하지 않으므로 수행 할 권한이있는 모든 삭제는 항상 존재합니다. 객체가 존재하지 않더라도. –