2014-10-05 7 views
1

AWS S3 버킷에 50000 개 이상의 파일 (오디오, 이미지, pdf)이 있습니다. 이제 파이어 폭스에 문제가 있습니다. content-type 때문에 오디오 파일이 firefox에서 재생되지 않습니다. 그것이 잘 작동하기 전에. 내가 오디오/MPEG진/octet-stream을에서 콘텐츠 형식을 변경할 때오디오 파일에 대해서만 AWS S3 콘텐츠 유형을 변경할 수 있습니까?

오디오 파일은 잘 작동합니다.

기본 콘텐츠 유형 (바이너리/옥텟 스트림)은 모든 기존 파일에 할당됩니다.

또한 s3 버켓 탐색기 도구를 사용해 보았지만 콘텐츠 형식을 (오디오 파일)으로 변경하는 옵션이 없습니다.

오디오 파일의 콘텐츠 유형 만 변경하려면 어떻게해야합니까?

aws php sdk의 예가 있습니까? 사전에

덕분에

+0

s3cmd 명령으로이 문제를 해결했습니다. :) – Rajaraman

+0

질문에 스스로 대답 할 수 있습니다. 답안에서 해결 방법에 대한 세부 정보를 입력하면 다른 사람들도 지식을 활용할 수 있습니다. – Krease

+0

이것은 코드입니다. s3cmd - 재귀 적 수정 --acl-public-add-header = 'Cache-Control : max-age = 94608000'--add-header = 'content-type': 'audio/mpeg'- -exclude '*'--include '* .mp3's3 : // 버킷 이름/ – Rajaraman

답변

3

나는 또한이 문제로 달리고, 저자가 지적했듯이, 이것은 s3cmd 도구를 사용하여 문제를 해결하는 방법입니다 :

s3cmd --recursive modify        \ 
    --acl-public          \ 
    --add-header='Cache-Control: max-age=94608000' \ 
    --add-header='content-type':'audio/mpeg'   \ 
    --exclude '' --include '.mp3'     \ 
    s3://<your-bucket-name>/       \ 

--recursive modify 플래그가 s3cmd 알려줍니다은 양동이에 재사용하고 수정할 모든 파일을 찾으십시오. --acl-public은 공개 액세스를 위해 수정 된 파일을 엽니 다. --add-header='Cache-Control은 캐시가 파일을 보관할 수있는 시간 (초)을 설정합니다 (파일이 변경되지 않은 경우 버킷에서 파일을 가져 오는 사람들은 다시 다운로드 할 필요가 없습니다). --exclude '' --include 'mp3'은 s3cmd에게 지정된 패턴과 일치하는 파일을 제외하고 프로세스에서 모든 파일을 제외하도록 지시합니다.

s3cmd --recursive modify --add-header='content-type':'text/css' \ 
     --exclude '' --include '.css' s3://<your-bucket-name>/ 

당신이 파일의 특정 유형에 대해 지정하는 가장 일반적인 MIME 형식의 목록을 확인 content-type 어떤 종류의 확실하지 않은 경우 : 여기에 또 다른 예는 텍스트/CSS에 양동이에 모든 CSS 파일을 설정한다 : http://hul.harvard.edu/ois/systems/wax/wax-public-help/mimetypes.htm

+0

이 솔루션은 저에게 효과적입니다. 한 가지 유의할 점 : 중요한 데이터를 저장하는 경우 S3 서버 측 암호화를 사용하려면'--encrypt'를 추가하는 것이 좋습니다. – Slickrick12

관련 문제