Object Storage Service (OSS) にローカルファイルをアップロードするには、put 操作を使用します。
権限
デフォルトでは、Alibaba Cloud アカウントはすべての権限を持っています。 Alibaba Cloud アカウント下の RAM ユーザーまたは RAM ロールは、デフォルトでは何の権限も持っていません。 Alibaba Cloud アカウントまたはアカウント管理者は、RAM ポリシーまたはバケットポリシーを通じて操作権限を付与する必要があります。
API | アクション | 定義 |
PutObject |
| オブジェクトをアップロードします。 |
| オブジェクトのアップロード時に | |
| オブジェクトのアップロード時に、オブジェクトのメタデータに | |
|
サンプルコード
次のコードは、ローカルファイル examplefile.txt を exampleobject.txt という名前のオブジェクトとして、examplebucket という名前のバケットにアップロードする方法を示しています。
const OSS = require('ali-oss')
const path=require("path")
const client = new OSS({
// バケットが所在するリージョンに yourregion を設定します。 たとえば、バケットが中国 (杭州) リージョンにある場合は、リージョンを oss-cn-hangzhou に設定します。
region: 'yourregion',
// 環境変数からアクセス認証情報を取得します。 このサンプルコードを実行する前に、OSS_ACCESS_KEY_ID および OSS_ACCESS_KEY_SECRET 環境変数が設定されていることを確認してください。
accessKeyId: process.env.OSS_ACCESS_KEY_ID,
accessKeySecret: process.env.OSS_ACCESS_KEY_SECRET,
authorizationV4: true,
// バケット名を指定します。
bucket: 'examplebucket',
});
// カスタムリクエストヘッダー
const headers = {
// オブジェクトのストレージクラスを指定します。
'x-oss-storage-class': 'Standard',
// オブジェクトのアクセス権限を指定します。
'x-oss-object-acl': 'private',
// URL を使用してファイルにアクセスする場合、ファイルが添付ファイルとしてダウンロードされるように指定します。 ダウンロードされるファイルの名前は example.txt です。
'Content-Disposition': 'attachment; filename="example.txt"',
// オブジェクトのタグを設定します。 複数のタグを同時に設定できます。
'x-oss-tagging': 'Tag1=1&Tag2=2',
// PutObject 操作中に同じ名前のオブジェクトを上書きするかどうかを指定します。 このパラメーターを true に設定すると、オブジェクトが上書きされるのを防ぎます。
'x-oss-forbid-overwrite': 'true',
};
async function put () {
try {
// OSS オブジェクトの完全なパスとローカルファイルの完全なパスを指定します。 OSS オブジェクトの完全なパスにバケット名を含めることはできません。
// ローカルファイルの完全なパスにローカルパスを指定しない場合、ファイルはサンプルプログラムが属するプロジェクトのローカルパスからアップロードされます。
const result = await client.put('exampleobject.txt', path.normalize('D:\\localpath\\examplefile.txt')
// カスタムヘッダー
,{headers}
);
console.log(result);
} catch (e) {
console.log(e);
}
}
put();よくある質問
ファイルアップロード後に返される URL が HTTP URL ではなく HTTPS URL であることを確認するにはどうすればよいですか?
ファイルアップロード後に返される URL が HTTPS URL であることを保証するには、secure 設定項目を追加し、その値を true に設定します。 詳細については、「設定項目」をご参照ください。