Name:
interface
Value:
Amplify has re-imagined the way frontend developers build fullstack applications. Develop and deploy without the hassle.
Gen1 DocsLegacy

Page updated May 22, 2024

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 リソースの場合

アプリから S3 バケットに呼び出しを行うには、S3 バケットの CORS ポリシーを設定する必要があります。このコールアウトは、S3 バケットの手動設定の場合のみです。

以下の手順で CORS ポリシーを設定します。

  1. Amazon S3 コンソールに移動し、プロジェクトの userfiles バケットをクリックします。通常、バケットは [Bucket Name][Id]-dev という名前です。Amazon S3 コンソールに移動
  2. バケットの Permissions タブをクリックします。バケットの Permissions タブをクリック
  3. Cross-origin resource sharing (CORS) セクションの編集ボタンをクリックします。Cross-origin resource sharing (CORS) セクションの編集ボタンをクリック
  4. 変更を加えて、Save Changes をクリックします。ExposeHeadersx-amz-meta-XXXX 形式で必要なメタデータを追加できます。Save Changes をクリック
[
{
"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
}
]

注: AllowedOrigin を個別のドメインに更新することで、バケットへのアクセスを制限できます。