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

Page updated Mar 26, 2026

ファイルのコピー

注: 1回の操作でコピーできるファイルは最大5GBまでです

copy APIを使用して、ストレージバケット内の既存ファイルを別のパスにコピーできます。

copyメソッドは既存ファイルを指定されたパスに複製し、正常に完了時にオブジェクト{path: 'destPath'}を返します。

import { copy } from 'aws-amplify/storage';
const copyFile = async () => {
try {
const response = await copy({
source: {
path: `album/2024/${encodeURIComponent('#1.jpg')}`,
// または、path: ({identityId}) => `album/${identityId}/${encodeURIComponent('#1.jpg')`
},
destination: {
path: 'shared/2024/#1.jpg',
// または、path: ({identityId}) => `shared/${identityId}/#1.jpg`
},
});
} catch (error) {
console.error('Error', err);
}
};

sourceパスに特殊文字がある場合、操作が失敗する可能性があります。特殊文字を含むsourceパスはURIエンコードする必要があります。destinationパスはエンコードする必要がありません

ID間のコピーは、destinationパスに他の認証済みユーザーの書き込みを許可する適切なアクセスルールがある場合にのみ許可されます。

バケットを指定するか、バケット/リージョン間でコピーする

bucketオプションを指定することで、特定のバケットへのcopy操作を実行することもできます。このオプションは、Amplify Backendで割り当てられたバケットの名前を表す文字列、またはコンソールから指定されたバケット名とリージョンを指定するオブジェクトのいずれかです。

import { copy } from 'aws-amplify/storage';
const copyFile = async () => {
try {
const response = await copy({
source: {
path: 'album/2024/1.jpg',
// Amplify Backendで割り当てられた名前またはコンソールのバケット名と関連リージョンを使用して
// ターゲットバケットを指定する
bucket: 'assignedNameInAmplifyBackend',
expectedBucketOwner: '123456789012'
},
destination: {
path: 'shared/2024/1.jpg',
// Amplify Backendで割り当てられた名前またはコンソールのバケット名と関連リージョンを使用して
// ターゲットバケットを指定する
bucket: {
bucketName: 'generated-second-bucket-name',
region: 'us-east-2'
},
expectedBucketOwner: '123456789013'
}
});
} catch (error) {
console.error('Error', error);
}
};

デフォルト以外のバケットにコピーするか、そこからコピーするには、sourceとdestinationの両方でbucketを明示的に定義する必要があります。

sourceおよびdestinationオプション

オプションデフォルト説明
pathstring |
({ identityId }) => string
必須ファイルをコピーまたはコピー元にするソースおよびdestinationバケット内のパスを表す文字列またはコールバック。
sourceのパスの各セグメントはURIエンコードする必要があります。
bucketstring |
{ bucketName: string;
region: string; }
Amplify設定のデフォルトバケットとリージョンAmplify Backendで割り当てられたターゲットバケットの名前を表す文字列、またはコンソールから指定されたバケット名とリージョンを指定するオブジェクト。

追加のストレージバケットを設定するで詳細を確認してください。
eTagstringオプションコピーソースオブジェクトのエンティティタグ(ETag)値。ETagが指定されたタグと一致する場合のみオブジェクトをコピーします。
notModifiedSinceDateオプションソースオブジェクトが指定された時刻以降に変更されていない場合、コピーします。

これはeTagが指定されていない場合のみ評価されます
expectedBucketOwnerstringオプションsource.expectedBucketOwner: ソースバケットを所有するアカウントID。

destination.expectedBucketOwner: destinationバケットを所有するアカウントID。