Movatterモバイル変換


[0]ホーム

URL:


メイン コンテンツにスキップ

このブラウザーはサポートされなくなりました。

Microsoft Edge にアップグレードすると、最新の機能、セキュリティ更新プログラム、およびテクニカル サポートを利用できます。

Microsoft Edge をダウンロードするInternet Explorer と Microsoft Edge の詳細情報
目次フォーカス モードの終了

JavaScript または TypeScript を使用して BLOB をアップロードする

  • 2024-11-03
フィードバック

この記事の内容

この記事では、JavaScript 用の Azure Storage クライアント ライブラリを使用して BLOB をアップロードする方法について説明します。 ファイル パス、ストリーム、バッファー、またはテキスト文字列からブロック BLOB にデータをアップロードできます。 インデックス タグを使用して BLOB をアップロードすることもできます。

前提条件

  • この記事の例では、JavaScript 用の Azure Blob Storage クライアント ライブラリを操作するように設定されたプロジェクトが、既にあることを前提としています。 パッケージのインストール、モジュールのインポート、データ ソースの操作が認可されたクライアント オブジェクトの作成を含むプロジェクトの設定については、「Azure Blob Storage と JavaScript の使用開始」を参照してください。
  • 認可メカニズムには、アップロード操作を実行するためのアクセス許可が必要です。 詳細については、次の REST API 操作の認可ガイダンスを参照してください。

ブロック BLOB にデータをアップロードする

次のいずれかのメソッドを使用して、ブロック BLOB にデータをアップロードできます。

これらの各メソッドは、BlockBlobClient オブジェクトを使用して呼び出すことができます。

ファイル パスからブロック BLOB をアップロードする

次の例では、ローカル ファイル パスからブロック BLOB をアップロードします。

// containerClient: ContainerClient object// blobName: string, includes file extension if provided// localFilePath: fully qualified path and file nameasync function uploadBlobFromLocalPath(containerClient, blobName, localFilePath){    // Create blob client from container client  const blockBlobClient = containerClient.getBlockBlobClient(blobName);  await blockBlobClient.uploadFile(localFilePath);}

ストリームからブロック BLOB をアップロードする

次の例では、読み取り可能なストリームを作成し、そのストリームをアップロードして、ブロック BLOB をアップロードします。

// containerClient: ContainerClient object// blobName: string, includes file extension if provided// readableStream: Readable stream, for example, a stream returned from fs.createReadStream()async function uploadBlobFromReadStream(containerClient, blobName, readableStream) {    // Create blob client from container client  const blockBlobClient = containerClient.getBlockBlobClient(blobName);  // Upload data to block blob using a readable stream  await blockBlobClient.uploadStream(readableStream);}

バッファーからブロック BLOB をアップロードする

次の例では、ブロック BLOB を Node.js バッファーからアップロードします。

// containerClient: ContainerClient object// blobName: string, includes file extension if provided// buffer: blob contents as a buffer, for example, from fs.readFile()async function uploadBlobFromBuffer(containerClient, blobName, buffer) {  // Create blob client from container client  const blockBlobClient = containerClient.getBlockBlobClient(blobName);  // Upload buffer  await blockBlobClient.uploadData(buffer);}

文字列からブロック BLOB をアップロードする

次の例では、ブロック BLOB を文字列からアップロードします。

// containerClient: ContainerClient object// blobName: string, includes file extension if provided// fileContentsAsString: blob contentasync function uploadBlobFromString(containerClient, blobName, fileContentsAsString){    // Create blob client from container client  const blockBlobClient = containerClient.getBlockBlobClient(blobName);  await blockBlobClient.upload(fileContentsAsString, fileContentsAsString.length);}

構成オプションを使用したブロック BLOB のアップロード

BLOB をアップロードするときに、クライアント ライブラリの構成オプションを定義できます。 これらのオプションは、パフォーマンスを向上させたり、信頼性を高めたり、コストを最適化したりするために調整できます。 このセクションのコード例では、BlockBlobParallelUploadOptions インターフェイスを使用して構成オプションを設定する方法と、それらのオプションをパラメーターとしてアップロード メソッド呼び出しに渡す方法を示します。

アップロード時のデータ転送オプションの指定

BlockBlobParallelUploadOptions でプロパティを構成し、データ転送操作のパフォーマンスを向上させることができます。 次の表に、構成できるプロパティと説明を示します。

プロパティ説明
blockSizeアップロード操作の一部として、要求ごとに転送する最大ブロック サイズ。
concurrency1 回の並列転送の一部として、任意の時点で発行される並列要求の最大数。
maxSingleShotSizeデータのサイズがこの値以下の場合は、チャンクに分割されるのではなく、1 つの put でアップロードされます。 データが 1 回のショットでアップロードされた場合、ブロック サイズは無視されます。 既定値は 256 MiB です。

次のコード例は、BlockBlobParallelUploadOptions に値を設定し、そのオプションをアップロードメソッド呼び出しの一部として含める方法を示しています。 このサンプルで使用した値は、推奨を意図したものではありません。 これらの値を適切にチューニングするには、アプリの特定のニーズを考慮する必要があります。

// containerClient: ContainerClient object// blobName: string, includes file extension if provided// localFilePath: fully qualified path and file nameasync function uploadWithTransferOptions(containerClient, blobName, localFilePath) {    // Specify data transfer options  const uploadOptions = {    blockSize: 4 * 1024 * 1024, // 4 MiB max block size    concurrency: 2, // maximum number of parallel transfer workers    maxSingleShotSize: 8 * 1024 * 1024, // 8 MiB initial transfer size  }   // Create blob client from container client  const blockBlobClient = containerClient.getBlockBlobClient(blobName);  // Upload blob with transfer options  await blockBlobClient.uploadFile(localFilePath, uploadOptions);}

データ転送オプションのチューニングの詳細については、「JavaScript を使用したアップロードとダウンロードのパフォーマンス チューニング」を参照してください。

インデックス タグ付きのブロック BLOB をアップロードする

キーと値のタグ属性を使用して、BLOB インデックス タグによってストレージ アカウント内のデータが分類されます。 これらのタグには自動的にインデックスが付けられ、検索可能な多次元インデックスとして公開されるため、データを簡単に見つけることができます。

次の例では、BlockBlobParallelUploadOptions を使用して、インデックス タグが設定されたブロック BLOB をアップロードします。

// containerClient: ContainerClient object// blobName: string, includes file extension if provided// localFilePath: fully qualified path and file nameasync function uploadWithIndexTags(containerClient, blobName, localFilePath) {    // Specify index tags for blob  const uploadOptions = {    tags: {      'Sealed': 'false',      'Content': 'image',      'Date': '2022-07-18',    }  }  // Create blob client from container client  const blockBlobClient = containerClient.getBlockBlobClient(blobName);  // Upload blob with index tags  await blockBlobClient.uploadFile(localFilePath, uploadOptions);}

アップロード時に BLOB のアクセス層を設定する

BlockBlobParallelUploadOptions インターフェイスを使用して、アップロード時に BLOB のアクセス層を設定できます。 次のコード例は、BLOB をアップロードするときにアクセス層を設定する方法を示しています。

// containerClient: ContainerClient object// blobName: string, includes file extension if provided// localFilePath: fully qualified path and file nameasync function uploadWithAccessTier(containerClient, blobName, localFilePath) {    // Specify access tier  const uploadOptions = {    // 'Hot', 'Cool', 'Cold', or 'Archive'    tier: 'Cool',  }  // Create blob client from container client  const blockBlobClient = containerClient.getBlockBlobClient(blobName);  // Upload blob to cool tier  await blockBlobClient.uploadFile(localFilePath, uploadOptions);}

アクセス層の設定はブロック BLOB でのみ許可されています。 ブロック BLOB のアクセス層は、HotCoolCold、またはArchive に設定できます。 アクセス層をCold に設定するには、最小クライアント ライブラリ バージョン 12.13.0 を使用する必要があります。

アクセス層の詳細については、「アクセス層の概要」を参照してください。

リソース

JavaScript 用 Azure Blob Storage クライアント ライブラリを使用した BLOB のアップロードの詳細については、次のリソースを参照してください。

REST API の操作

Azure SDK for JavaScript には Azure REST API に基づいて構築されたライブラリが含まれるため、使い慣れた JavaScript パラダイムを通じて REST API 操作を利用できます。 BLOB をアップロードするためのクライアント ライブラリ メソッドでは、次の REST API 操作を使用します。

コード サンプル

この記事のコード サンプルを表示する (GitHub):

クライアント ライブラリのリソース

こちらもご覧ください

関連するコンテンツ

  • この記事は、JavaScript/TypeScript の Blob Storage 開発者ガイドの一部です。 詳細については、JavaScript/TypeScript アプリの構築に関するセクションにある開発者ガイド記事の完全な一覧を参照してください。

フィードバック

このページはお役に立ちましたか?

Yesいいえ

この記事の内容

このページはお役に立ちましたか?

Yesいいえ