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

Choose your framework/language

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 を個別のドメインに更新することで、バケットへのアクセスを制限できます。