2013-11-28 6 views
3

그래서 우리 모두가 가장자리 점을 통해 Cloudfront now supports uploading to S3을 알고 있습니다.Cloudfront를 통해 S3에 업로드

그러나이 작업을 수행하는 방법을 잘 모르겠습니다. 완전히 기능이 제공되지 않습니다 (헤더 및 부분 업로드 권한 부여를 지원하지 않음). 그러나 곧바로 업로드하는 것이 중요합니다.

저는 PHP로 작업하고 있습니다. 아직까지는 API에서 지원되지 않는 것으로 나타났습니다. 오히려보다 간단한 무언가를하는 것은 다양한 인증 마일스톤을 필요로합니다.

누구나 내가 최선의 방법을 찾기 위해 최선의 방법을 찾았는지, 아니면 CURL POST와 다른 유용한 것을 시도하고있는 가장 좋은 방법을 제안했습니다.

+0

Cloudfront를 통해 S3에 업로드하려는 특별한 이유가 있습니까? 나는 이것에 대해 가끔 질문을했지만 누군가 실제로 그것을하고 싶어하는 이유를 찾지 못했습니다. 나에게 계몽? –

+2

단순히 S3 종점에 가까운 지역에 있지 않은 사용자를 위해 S3 종단점에 업로드하는 것보다 로컬 에지 지점에 업로드하는 것이 더 빠릅니다. S3가 지역적이라는 것을 기억하십시오. – waxical

+1

예,하지만 클라우드 프론트를 통해 업로드 할 때 로컬 에지 위치로 "업로드"하지 않고 있습니다 ... 여전히 S3 원점으로 "업로드"하고 있으며 업로드는 단지 "클라우드 프론트를 통해" 그곳에. 업로드가 가장자리 위치에 저장되지 않습니다. –

답변

4

browser-based POST uploads feature of Amazon S3에 대한 자세한 내용은 AWS 문서를 참조하십시오. Amazon S3에 POST 업로드를 수행하려면 POST 요청과 함께 특별한 JSON 정책 문서를 보내고 업로드해야합니다. PHP 용 AWS SDK의 S3 PostObject class은 제공된 옵션을 기반으로이 정책을 생성하고 양식/요청에 포함해야하는 다른 양식 요소 값을 생성하는 데 유용합니다.

아직 시도하지는 않았지만 CloudFront 에지 위치를 통해 업로드를 수행하기 위해 CloudFront 배포 엔드 포인트의 S3 버켓 엔드 포인트를 스왑해야합니다. 또한 배포가 POST 요청을 허용하도록 구성되어 있는지 확인하십시오. 질문에 대한 공식 답변을 얻으려면 Amazon CloudFront 팀에 CloudFront forum을 요청하십시오.

1

이제이 작업을 수행 할 수 있어야합니다. 다시 시도해보십시오. CloudFront 배포판이 아닌 요청에 서명 할 때 S3 버킷의 DNS 이름을 사용해야합니다.