すべてのプロダクト
Search
ドキュメントセンター

Object Storage Service:シンプルアップロード (Harmony SDK)

最終更新日:Nov 30, 2025

このトピックでは、単一のファイルを Object Storage Service (OSS) に迅速にアップロードするための簡単な方法であるシンプルアップロードについて説明します。

注意事項

OSS がサポートするリージョンとエンドポイントの詳細については、「リージョンとエンドポイント」をご参照ください。

権限

デフォルトでは、Alibaba Cloud アカウントは完全な権限を持っています。 Alibaba Cloud アカウント配下の RAM ユーザーまたは RAM ロールは、デフォルトではいかなる権限も持っていません。 Alibaba Cloud アcount またはアカウント管理者は、「RAM ポリシー」または「バケットポリシー」を通じて操作権限を付与する必要があります。

API

アクション

定義

PutObject

oss:PutObject

オブジェクトをアップロードします。

oss:PutObjectTagging

オブジェクトのアップロード時に x-oss-tagging を通じてオブジェクトタグを指定する場合、この権限が必要です。

kms:GenerateDataKey

オブジェクトのアップロード時に、オブジェクトのメタデータに X-Oss-Server-Side-Encryption: KMS が含まれる場合、これら 2 つの権限が必要です。

kms:Decrypt

サンプルコード

次のコードを使用して、文字列をファイルとして宛先バケットにアップロードできます。

重要

同じ名前のオブジェクトが既に存在するバケットにオブジェクトをアップロードする場合、必要なアクセス権限があれば、新しいオブジェクトは既存のオブジェクトを上書きします。

import Client, { RequestError } from '@aliyun/oss';

// OSS クライアントインスタンスを作成します。
const client = new Client({
  // STS 一時アクセス認証情報の AccessKey ID を置き換えます。
  accessKeyId: 'yourAccessKeyId',
  // STS 一時アクセス認証情報の AccessKey Secret を置き換えます。
  accessKeySecret: 'yourAccessKeySecret',
  // STS 一時アクセス認証情報のセキュリティトークンを置き換えます。
  securityToken: 'yourSecurityToken',
  // バケットが配置されているリージョンを指定します。たとえば、バケットが中国 (杭州) リージョンにある場合は、Region を oss-cn-hangzhou に設定します。
  region: 'oss-cn-hangzhou',
});

const bucket = 'yourBucketName'; // 使用するバケットの名前に置き換えます。

const key = 'yourObjectName'; // アップロードするオブジェクト (ファイル) の名前に置き換えます。

const putObject = async () => {
  try {
    // putObject メソッドを呼び出して、指定されたバケットとキーにデータをアップロードし、データをパラメーターとして渡します。
    const res = await client.putObject({
      bucket, // バケット名。
      key, // オブジェクト (ファイル) 名。
      data: 'hello world' // アップロードするデータ。この例では、単純な文字列です。
    });

    // アップロード結果を出力します。
    console.log(JSON.stringify(res));
  } catch (err) {
    // リクエスト中に発生した例外をキャッチします。
    if (err instanceof RequestError) {
      // エラーが既知の型である場合は、エラーコード、メッセージ、リクエスト ID、ステータスコード、EC コードなどの情報を出力します。
      console.log('code: ', err.code);
      console.log('message: ', err.message);
      console.log('requestId: ', err.requestId);
      console.log('status: ', err.status);
      console.log('ec: ', err.ec);
    } else {
      // その他の不明な型のエラーを出力します。
      console.log('unknown error: ', err);
    }
  }
}

// putObject 関数を呼び出してアップロード操作を実行します。
putObject();

利用シーン

ローカルファイルのアップロード

次のコードを使用して、ローカルファイルを宛先バケットにアップロードできます。

import Client, { RequestError } from '@aliyun/oss';
import { fileIo as fs } from '@kit.CoreFileKit';

// OSS クライアントインスタンスを作成します。
const client = new Client({
  // STS 一時アクセス認証情報の AccessKey ID を置き換えます。
  accessKeyId: 'yourAccessKeyId',
  // STS 一時アクセス認証情報の AccessKey Secret を置き換えます。
  accessKeySecret: 'yourAccessKeySecret',
  // STS 一時アクセス認証情報のセキュリティトークンを置き換えます。
  securityToken: 'yourSecurityToken',
  // バケットが配置されているリージョンを指定します。たとえば、バケットが中国 (杭州) リージョンにある場合は、Region を oss-cn-hangzhou に設定します。
  region: 'oss-cn-hangzhou',
});

// 操作するバケットの名前を指定します。実際のバケット名に置き換えてください。
const bucket = 'yourBucketName';
// アップロードするオブジェクト (ファイル) の名前を指定します。実際のオブジェクト名に置き換えてください。
const key = 'yourObjectName';

/**
 * ファイルパスから OSS にオブジェクトをアップロードします。
 * putObject メソッドを使用して、ローカルファイルを指定されたバケットとキーにアップロードします。
 */
const putObjectByFile = async () => {
  // ローカルファイルを開いて読み取ります。
  const file = await fs.open('yourFilePath', fs.OpenMode.READ_ONLY); // 実際のファイルパスに置き換えてください。

  try {
    // putObject メソッドを呼び出して、ファイルを指定されたバケットとキーにアップロードします。
    const res = await client.putObject({
      bucket, // バケット名。
      key,    // オブジェクト (ファイル) 名。
      data: file, // アップロードするファイルデータ。
    });

    // アップロード結果を出力します。
    console.log(JSON.stringify(res));
  } catch (err) {
    // リクエスト中に発生した例外をキャッチします。
    if (err instanceof RequestError) {
      // エラーが既知の型である場合は、エラーコード、メッセージ、リクエスト ID、ステータスコード、EC コードなどの情報を出力します。
      console.log('code: ', err.code); // エラーコード
      console.log('message: ', err.message); // エラーメッセージ
      console.log('requestId: ', err.requestId); // リクエスト ID
      console.log('status: ', err.status); // HTTP ステータスコード
      console.log('ec: ', err.ec); // エラーコード
    } else {
      // その他の不明な型のエラーを出力します。
      console.log('unknown error: ', err);
    }
  } finally {
    // 操作が完了したら、必ずファイルを閉じてください。
    await fs.close(file);
  }
};

// putObjectByFile 関数を呼び出してファイルアップロード操作を実行します。
putObjectByFile();

ファイルをアップロードしてストレージクラスを指定

次のコードを使用して、ファイルを宛先バケットにアップロードし、そのストレージクラスを指定できます。

import Client, { EStorageClass, RequestError } from '@aliyun/oss';

// OSS クライアントインスタンスを作成します。
const client = new Client({
  // STS 一時アクセス認証情報の AccessKey ID を置き換えます。
  accessKeyId: 'yourAccessKeyId',
  // STS 一時アクセス認証情報の AccessKey Secret を置き換えます。
  accessKeySecret: 'yourAccessKeySecret',
  // STS 一時アクセス認証情報のセキュリティトークンを置き換えます。
  securityToken: 'yourSecurityToken',
  // バケットが配置されているリージョンを指定します。たとえば、バケットが中国 (杭州) リージョンにある場合は、Region を oss-cn-hangzhou に設定します。
  region: 'oss-cn-hangzhou',
});

// 操作するバケットの名前を指定します。実際のバケット名に置き換えてください。
const bucket = 'yourBucketName';
// アップロードするオブジェクト (ファイル) の名前を指定します。実際のオブジェクト名に置き換えてください。
const key = 'yourObjectName';

/**
 * オブジェクトをアップロードし、そのストレージクラスを指定します。
 * putObject メソッドを使用して、指定されたバケットとキーにデータをアップロードし、ストレージクラスを ARCHIVE に設定します。
 */
const putObjectWithStorageClass = async () => {
  try {
    // putObject メソッドを呼び出してデータをアップロードし、ストレージクラスを ARCHIVE として指定します。
    const res = await client.putObject({
      bucket, // バケット名。
      key,    // オブジェクト (ファイル) 名。
      data: 'hello world', // アップロードするデータ。この例では、単純な文字列です。
      storageClass: EStorageClass.ARCHIVE, // ストレージクラスを ARCHIVE として指定します。
    });

    // アップロード結果を出力します。
    console.log(JSON.stringify(res));
  } catch (err) {
    // リクエスト中に発生した例外をキャッチします。
    if (err instanceof RequestError) {
      // エラーが既知の型である場合は、エラーコード、メッセージ、リクエスト ID、ステータスコード、EC コードなどの情報を出力します。
      console.log('code: ', err.code); // エラーコード
      console.log('message: ', err.message); // エラーメッセージ
      console.log('requestId: ', err.requestId); // リクエスト ID
      console.log('status: ', err.status); // HTTP ステータスコード
      console.log('ec: ', err.ec); // エラーコード
    } else {
      // その他の不明な型のエラーを出力します。
      console.log('unknown error: ', err);
    }
  }
};

// putObjectWithStorageClass 関数を呼び出してアップロード操作を実行します。
putObjectWithStorageClass();

ファイルをアップロードしてアクセス権限を指定

次のコードを使用して、ファイルを宛先バケットにアップロードし、そのアクセス権限を指定できます。

import Client, { EObjectAcl, RequestError } from '@aliyun/oss';

// OSS クライアントインスタンスを作成します。
const client = new Client({
  // STS 一時アクセス認証情報の AccessKey ID を置き換えます。
  accessKeyId: 'yourAccessKeyId',
  // STS 一時アクセス認証情報の AccessKey Secret を置き換えます。
  accessKeySecret: 'yourAccessKeySecret',
  // STS 一時アクセス認証情報のセキュリティトークンを置き換えます。
  securityToken: 'yourSecurityToken',
  // バケットが配置されているリージョンを指定します。たとえば、バケットが中国 (杭州) リージョンにある場合は、Region を oss-cn-hangzhou に設定します。
  region: 'oss-cn-hangzhou',
});

// 操作するバケットの名前を指定します。実際のバケット名に置き換えてください。
const bucket = 'yourBucketName';
// アップロードするオブジェクト (ファイル) の名前を指定します。実際のオブジェクト名に置き換えてください。
const key = 'yourObjectName';

/**
 * オブジェクトをアップロードし、そのアクセス権限を設定します。
 * putObject メソッドを使用して、指定されたバケットとキーにデータをアップロードし、オブジェクトのアクセス権限を PRIVATE に設定します。
 */
const putObjectWithObjectAcl = async () => {
  try {
    // putObject メソッドを呼び出してデータをアップロードし、オブジェクトのアクセス権限を PRIVATE に設定します。
    const res = await client.putObject({
      bucket, // バケット名。
      key,    // オブジェクト (ファイル) 名。
      data: 'hello world', // アップロードするデータ。この例では、単純な文字列です。
      objectAcl: EObjectAcl.PRIVATE, // オブジェクトのアクセス権限を PRIVATE に設定します。
    });

    // アップロード結果を出力します。
    console.log(JSON.stringify(res));
  } catch (err) {
    // リクエスト中に発生した例外をキャッチします。
    if (err instanceof RequestError) {
      // エラーが既知の型である場合は、エラーコード、メッセージ、リクエスト ID、ステータスコード、EC コードなどの情報を出力します。
      console.log('code: ', err.code); // エラーコード
      console.log('message: ', err.message); // エラーメッセージ
      console.log('requestId: ', err.requestId); // リクエスト ID
      console.log('status: ', err.status); // HTTP ステータスコード
      console.log('ec: ', err.ec); // エラーコード
    } else {
      // その他の不明な型のエラーを出力します。
      console.log('unknown error: ', err);
    }
  }
};

// putObjectWithObjectAcl 関数を呼び出してアップロード操作を実行します。
putObjectWithObjectAcl();