Jelajahi Sumber

examples: add CORS settings for DigitalOcean Spaces (#4428)

Antoine du Hamel 2 tahun lalu
induk
melakukan
125e4e1117

+ 15 - 2
examples/digitalocean-spaces/README.md

@@ -1,6 +1,9 @@
 # Uploading to DigitalOcean Spaces
 
-This example uses Uppy to upload files to a DigitolOcean Space. DigitalOcean Spaces has an identical API to S3, so we can use the [AwsS3](https://uppy.io/docs/aws-s3) plugin. We use @uppy/companion with a [custom `endpoint` configuration](./server.cjs#L39) that points to DigitalOcean.
+This example uses Uppy to upload files to a [DigitalOcean Space](https://digitaloceanspaces.com/).
+DigitalOcean Spaces has an identical API to S3, so we can use the
+[AwsS3](https://uppy.io/docs/aws-s3-multipart) plugin. We use @uppy/companion with a
+[custom `endpoint` configuration](./server.cjs#L39) that points to DigitalOcean.
 
 ## Running it
 
@@ -14,7 +17,8 @@ corepack yarn build
 That will also install the dependencies for this example.
 
 First, set up the `COMPANION_AWS_KEY`, `COMPANION_AWS_SECRET`,
-`COMPANION_AWS_REGION`, and `COMPANION_AWS_BUCKET` environment variables for
+`COMPANION_AWS_REGION` (use a DigitalOcean region name for `COMPANION_AWS_REGION`,
+e.g. `nyc3`), and `COMPANION_AWS_BUCKET` environment variables for
 `@uppy/companion` in a `.env` file. You may find useful to first copy the
 `.env.example` file:
 
@@ -22,6 +26,15 @@ First, set up the `COMPANION_AWS_KEY`, `COMPANION_AWS_SECRET`,
 [ -f .env ] || cp .env.example .env
 ```
 
+To setup the CORS settings of your Spaces bucket in accordance with
+[the plugin docs](https://uppy.io/docs/aws-s3-multipart/#setting-up-your-s3-bucket),
+you can use the [example XML config file](./setcors.xml) with the
+[`s3cmd` CLI](https://docs.digitalocean.com/products/spaces/reference/s3cmd/):
+
+```sh
+s3cmd setcors examples/digitalocean-spaces/setcors.xml "s3://$COMPANION_AWS_BUCKET"
+```
+
 Then you can start the dev server:
 
 ```bash

+ 15 - 0
examples/digitalocean-spaces/setcors.xml

@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
+    <CORSRule>
+        <AllowedOrigin>http://localhost:3452</AllowedOrigin>
+        <AllowedMethod>GET</AllowedMethod>
+        <AllowedMethod>POST</AllowedMethod>
+        <AllowedMethod>PUT</AllowedMethod>
+        <MaxAgeSeconds>3000</MaxAgeSeconds>
+        <ExposeHeader>ETag</ExposeHeader>
+        <AllowedHeader>Authorization</AllowedHeader>
+        <AllowedHeader>Content-Type</AllowedHeader>
+        <AllowedHeader>x-amz-date</AllowedHeader>
+        <AllowedHeader>x-content-sha256</AllowedHeader>
+    </CORSRule>
+</CORSConfiguration>