Active Storage에서 직접 업로드를 허용하도록 Vultr CORS 구성

2595 단어 railss3vultrcors
Vultr Object Storage를 사용하도록 Rails의 Active Storage를 구성했을 때 모든 것이 괜찮아 보였지만 Action Text에서 일부 이미지를 업로드하려고 했을 때 콘솔에 빨간색 메시지가 표시되었습니다. 뭔가 제대로 작동하지 않았습니다.

Rails Guides, Active Storage Overview, Direct Uploads로 이동했습니다. 섹션9.2 Cross-Origin Resource Sharing (CORS) configuration에서 주요 서비스에 대해 CORS를 구성하는 방법에 대한 정보를 제공하지만... Vultr는 어디에 있습니까?

Vultr에는 S3 API의 하위 집합과 호환되는 API가 있습니다. 운 좋게도 CORS 구성을 공유합니다. 그리고 그들은 심지어 wiki page explaining how to configure it .

인터넷에서 공식 정보가 사라질 경우를 대비하여 여기에 글을 쓰고 있습니다.

이 항목을 구성하려면 s3cmd이라는 도구를 사용할 수 있습니다. brew.sh에서 구할 수 있습니다.

구성을 Vultr에 업로드하기 전에 도구를 구성해야 합니다. Vultr에는 it's wiki에 대한 모든 단계가 있지만 여기에 기본 사항을 복사하겠습니다.

구성 스크립트를 실행합니다.

$ s3cmd --configure


리전을 무시하고 ewr1.vultrobjects.com를 S3 엔드포인트로 설정합니다. 버킷 액세스를 위한 DNS 스타일 템플릿은 %(bucket)s.ewr1.vultrobjects.com 입니다.

이제 내용이 포함된 xml 파일을 만들어야 합니다.

<CORSConfiguration>
<CORSRule>
    <ID>Get and put from/to Vultr Object Storage</ID>
    <AllowedOrigin>http://example.com</AllowedOrigin>
    <AllowedMethod>GET</AllowedMethod>
    <AllowedMethod>PUT</AllowedMethod>
    <AllowedMethod>HEAD</AllowedMethod>
    <AllowedHeader>*</AllowedHeader>
    <ExposeHeader>Origin</ExposeHeader>
    <ExposeHeader>Content-Type</ExposeHeader>
    <ExposeHeader>Content-MD5</ExposeHeader>
    <ExposeHeader>Content-Disposition</ExposeHeader>
    <MaxAgeSeconds>3600</MaxAgeSeconds>
</CORSRule>
</CORSConfiguration>


필요한 만큼AllowedOrigin 추가할 수 있습니다. 아마도 https , www 하위 도메인, ...

그런 다음 다음 명령을 실행합니다.

$ s3cmd setcors RULES_FILE.xml s3://BUCKET_NAME


이것은 버킷에서 이미지를 업로드하고 가져오기에 충분해야 합니다.

좋은 웹페이지 즐겨찾기