일반적으로 개인용이지만 제한 사항이있는 익명 업로드를 허용하는 버킷을 설치하는 방법을 정확히 이해하려고합니다. 구체적인 기준은 다음과 같습니다.S3 - 익명 업로드 - 키 접두어
- 버킷은 대부분 비공개이므로 파일을 추가/제거/업데이트/나열하려면 키/비밀이 필요합니다.
- "수신"이라고하는 "디렉토리"(즉, 키 접두어)가 있습니다. 익명 사용자가 콘텐츠를 업로드 할 수는 있지만 목록을 업로드 할 수는 없습니다.
- 버킷의 모든 콘텐츠에 대해 만료일이 있습니다. 보너스로 "들어오는"디렉토리에 30 분의 만료 기간을 갖길 원합니다.하지만 가능하지 않은 경우 전체 버킷에 대한 만료일이 적용됩니다.
- "수신"접두사가있는 파일의 크기는 개체 당 제한 될 수 있습니다.
- "받는"접두사가있는 개체를 특정 콘텐츠 형식으로 제한 할 수도 있습니다. 내가 가진
질문은 다음과 같습니다
- 는 단순히 두 개의 버킷을 만들 좋을 것이다. 하나는 내 수신 파일 용이고 다른 하나는 개인 처리 및 저장 용입니까?
- 들어오는 디렉토리에 파일을 업로드하는 코드는 어떻게 생겼을까요? 이상적으로 나는 S3 라이브러리에 대한 의존성을 피하고 단지 HTTP 호출을 사용하고 싶습니다. 보너스 포인트는 루비에서 나에게 올바른 방향을 보여줄 수 있다면 요. :)
만료 기간은 S3 관리 콘솔을 통해 설정 가능하지만 최소 만료 날짜는 1 일로 제한됩니다. 그 필드에 10 진수를 넣을 수 있습니까? 퍼미션은 접두어 대신 전체 버킷에 적용되는 것처럼 보입니다. 이것은 내가 단지 2 개의 버킷이 필요하다고 생각하게하고있다. 하나의 버킷을 가지고 있다면 버팀목에 IAM 정책을 적용해야하지만 S3에 대한 나의 제한된 지식을 넘어서고 사람들이 할 수있는 권한에 구멍을 남기지 않기를 원합니다 내가 원하는 것 이상으로.
나는 HTTP 양식 게시를 통해 S3에 익명 업로드를하는 것에 관한 많은 문서를 발견했습니다. 코드에 적용 할 수는 있지만 응용 프로그램 코드 (HTTP 양식 포스트가 아님)가 더 쉬운 방법이기 때문에 궁금합니다.
for 2, carrierwave 클립으로 s3 구성을 고려해 보셨습니까? – rb512
제안 해 주셔서 감사합니다. 네, 일반적으로 모두가 인증 된 기준 (익명이 아닌)으로 운영된다고 생각하기는하지만 이전에 사용했습니다. 익명으로 할 수있는 애드온이있을 수 있지만 S3가 REST 인터페이스이기 때문에 정말 기대하고 있습니다. 제 3 자 라이브러리가없는 단순한 HTTP 요청이 트릭을 수행 할 수있는 익명 업로드를 허용하고 있습니다. 그러나 누군가가 올바른 방향으로 나를 가리킬 수 있다면 내가 좋아할 것이라고 기대했던 것보다 아마존 문서를 분석하려고 노력하는 것이 많은 일이었습니다. –
잘 모르겠어요. 익명으로는 s3 자격 증명을 제공하지 않고 파일을 업로드 할 수 있기를 원하십니까? 나는 그것이 가능하다고 생각하지 않는다. – rb512