Looking for how to use this in your app?See Frontend Libraries →
S3 リソースを拡張する
Amplify で生成された S3 リソースの場合
Amplify Storage は、ストレージ機能を提供するために Amazon S3 リソースを生成します。AWS Cloud Developer Kit (AWS CDK) を使用して、基盤となる Amazon S3 リソースにアクセスして、バックエンド設定をさらにカスタマイズできます。
例 - Transfer Acceleration を有効にする
以下は、バケットで Transfer Acceleration を有効にする方法の例です(CDK ドキュメント)。バケットで Transfer Acceleration を有効にするには、次のように L2 CDK コンストラクトから L1 CDK コンストラクトをアンラップする必要があります。
import * as s3 from 'aws-cdk-lib/aws-s3';import { defineBackend } from '@aws-amplify/backend';import { storage } from './storage/resource';
const backend = defineBackend({ storage});
const s3Bucket = backend.storage.resources.bucket;
const cfnBucket = s3Bucket.node.defaultChild as s3.CfnBucket;
cfnBucket.accelerateConfiguration = { accelerationStatus: "Enabled" // 'Suspended' if you want to disable transfer acceleration}詳細は CDK のエスケープハッチ をご覧ください。
手動で設定した S3 リソースの場合
以下の手順で CORS ポリシーを設定します。
- Amazon S3 コンソールに移動し、プロジェクトの
userfilesバケットをクリックします。通常、バケットは [Bucket Name][Id]-dev という名前です。 - バケットの Permissions タブをクリックします。
- Cross-origin resource sharing (CORS) セクションの編集ボタンをクリックします。
- 変更を加えて、Save Changes をクリックします。
ExposeHeadersにx-amz-meta-XXXX形式で必要なメタデータを追加できます。
[ { "AllowedHeaders": ["*"], "AllowedMethods": ["GET", "HEAD", "PUT", "POST", "DELETE"], "AllowedOrigins": ["*"], "ExposeHeaders": [ "x-amz-server-side-encryption", "x-amz-request-id", "x-amz-id-2", "ETag", "x-amz-meta-foo" ], "MaxAgeSeconds": 3000 }]