BlockBlobClient class
BlockBlobClient 會定義一組適用於區塊 Blob 的作業。
- Extends
建構函式
Block |
建立 BlockBlobClient 的實例。 此方法接受指向區塊 Blob 的編碼 URL 或非編碼 URL。 編碼的 URL 字串不會逸出兩次,只會逸出 URL 路徑中的特殊字元。 如果 Blob 名稱包含 ? 或 %,Blob 名稱必須在 URL 中編碼。 |
Block |
建立 BlockBlobClient 的實例。 此方法接受指向區塊 Blob 的編碼 URL 或非編碼 URL。 編碼的 URL 字串不會逸出兩次,只會逸出 URL 路徑中的特殊字元。 如果 Blob 名稱包含 ? 或 %,Blob 名稱必須在 URL 中編碼。 |
Block |
建立 BlockBlobClient 的實例。 |
屬性
container |
Blob 相關聯的記憶體容器名稱。 |
name | Blob 的名稱。 |
繼承的屬性
account |
|
credential | 例如 AnonymousCredential、StorageSharedKeyCredential 或任何來自 |
url | 編碼的 URL 字串值。 |
方法
commit |
指定組成 Blob 的區塊識別碼清單,以寫入 Blob。 若要寫入為 Blob 的一部分,區塊必須已在先前的 stageBlock 作業中成功寫入伺服器。 您可以呼叫 commitBlockList,只上傳已變更的區塊,然後一起認可新的和現有的區塊,以更新 Blob。 區塊清單中未指定且永久刪除的任何區塊。 請參閱 https://docs.microsoft.com/rest/api/storageservices/put-block-list |
get |
使用指定的區塊清單篩選,傳回已上傳為區塊 Blob 一部分的區塊清單。 請參閱 https://docs.microsoft.com/rest/api/storageservices/get-block-list |
query(string, Block |
僅適用於運行時間NODE.JS。 JSON 或 CSV 格式化 Blob 的快速查詢。 範例使用方式 (Node.js):
|
stage |
將指定的區塊上傳至區塊 Blob 的「暫存區域」,以供呼叫 commitBlockList 稍後認可。 請參閱 https://docs.microsoft.com/rest/api/storageservices/put-block |
stage |
階段封鎖 URL 作業會建立要認可的新區塊,做為從 URL 讀取內容的 Blob 的一部分。 此 API 可從 2018-03-28 版開始提供。 請參閱 https://docs.microsoft.com/en-us/rest/api/storageservices/put-block-from-url |
sync |
建立新的區塊 Blob,其中 Blob 的內容會從指定的 URL 讀取。 從 2020-04-08 版本開始,支援此 API。 從 URL 放置 Blob 不支援部分更新;現有 Blob 的內容會以新 Blob 的內容覆寫。 若要使用來源 URL 對區塊 Blob 的內容執行部分更新,請使用 stageBlockFromURL 和 commitBlockList。 |
upload(Request |
建立新的區塊 Blob,或更新現有區塊 Blob 的內容。 更新現有的區塊 Blob 會覆寫 Blob 上任何現有的元數據。 不支援部分更新;現有 Blob 的內容會以新內容覆寫。 若要執行區塊 Blob 的部分更新,請使用 stageBlock 和 commitBlockList。 這是非平行上傳方法,請使用 uploadFile、uploadStream 或 uploadBrowserData,以取得並行上傳的更佳效能。 請參閱 https://docs.microsoft.com/rest/api/storageservices/put-blob |
upload |
僅適用於瀏覽器。 將瀏覽器 Blob/File/ArrayBuffer/ArrayBufferView 對象上傳至區塊 Blob。 當緩衝區長度小於或等於 256MB 時,這個方法會使用 1 個上傳呼叫來完成上傳。 否則,這個方法會呼叫 stageBlock 來上傳區塊,最後呼叫 commitBlockList 認可區塊清單。 要設定的常見 blobHTTPHeaders 選項是 |
upload |
將 Buffer(Node.js)/Blob(browsers)/ArrayBuffer/ArrayBufferView 物件上傳至 BlockBlob。 當數據長度不超過指定的 maxSingleShotSize (預設值為 <xref:BLOCK_BLOB_MAX_UPLOAD_BLOB_BYTES>),這個方法會使用 1 上傳 呼叫來完成上傳。 否則,這個方法會呼叫 stageBlock 來上傳區塊,最後呼叫 commitBlockList 認可區塊清單。 要設定的常見 blobHTTPHeaders 選項是 |
upload |
僅適用於運行時間NODE.JS。 將區塊中的本機檔案上傳至區塊 Blob。 當檔案大小小於或等於 256MB 時,這個方法會使用 1 個上傳呼叫來完成上傳。 否則,此方法會呼叫 stageBlock 來上傳區塊,最後呼叫 commitBlockList 來認可區塊清單。 |
upload |
僅適用於運行時間NODE.JS。 將 Node.js 可讀取數據流上傳至區塊 Blob。 效能改進秘訣:
|
with |
建立與來源相同的新 BlockBlobClient 物件,但具有指定的快照集時間戳。 提供 “” 會移除快照集,並將 URL 傳回至基底 Blob。 |
繼承的方法
abort |
中止暫止的異步複製 Blob 作業,並保留長度為零和完整元數據的目的地 Blob。 版本 2012-02-12 和更新版本。 請參閱 https://docs.microsoft.com/en-us/rest/api/storageservices/abort-copy-blob |
begin |
以異步方式將 Blob 複製到記憶體帳戶內的目的地。
這個方法會傳回長時間執行的作業輪詢器,可讓您無限期地等候,直到複製完成為止。
您也可以在輪詢程式上呼叫 在 2012-02-12 版和更新版本中,複製 Blob 作業的來源可以是任何 Azure 記憶體帳戶中的認可 Blob。 從 2015-02-21 版開始,複製 Blob 作業的來源可以是任何 Azure 記憶體帳戶中的 Azure 檔案。 只有在 2012 年 6 月 7 日或之後建立的記憶體帳戶,才能讓複製 Blob 作業從另一個記憶體帳戶複製。 請參閱 https://docs.microsoft.com/en-us/rest/api/storageservices/copy-blob 使用自動輪詢的範例:
使用手動輪詢的範例:
使用進度更新的範例:
使用變更輪詢間隔的範例 (預設值 15 秒):
使用複製取消的範例:
|
create |
建立 Blob 的唯讀快照集。 請參閱 https://docs.microsoft.com/en-us/rest/api/storageservices/snapshot-blob |
delete(Blob |
標示要刪除的指定 Blob 或快照集。 Blob 稍後會在垃圾收集期間刪除。 請注意,若要刪除 Blob,您必須刪除其所有快照集。 您可以使用刪除 Blob 作業同時刪除兩者。 請參閱 https://docs.microsoft.com/en-us/rest/api/storageservices/delete-blob |
delete |
如果存在,請標記指定的 Blob 或快照集進行刪除。 Blob 稍後會在垃圾收集期間刪除。 請注意,若要刪除 Blob,您必須刪除其所有快照集。 您可以使用刪除 Blob 作業同時刪除兩者。 請參閱 https://docs.microsoft.com/en-us/rest/api/storageservices/delete-blob |
delete |
刪除 Blob 上的不固定原則。 |
download(number, number, Blob |
從系統讀取或下載 Blob,包括其元數據和屬性。 您也可以呼叫取得 Blob 來讀取快照集。
請參閱 https://docs.microsoft.com/en-us/rest/api/storageservices/get-blob |
download |
僅適用於運行時間NODE.JS。 平行下載 Azure Blob 至緩衝區。 位移和計數是選擇性的,如果未提供,則會下載整個 Blob。 警告:緩衝區只能在32位系統上支援最多一 GB 的檔案,或64位系統上最多支援大約2 GB的檔案,因為 Node.js/V8的限制。 對於大於此大小的 Blob,請考慮 downloadToFile。 |
download |
僅適用於運行時間NODE.JS。 平行下載 Azure Blob 至緩衝區。 位移和計數是選擇性的,如果未提供,則會下載整個 Blob。 警告:緩衝區只能在32位系統上支援最多一 GB 的檔案,或64位系統上最多支援大約2 GB的檔案,因為 Node.js/V8的限制。 對於大於此大小的 Blob,請考慮 downloadToFile。 |
download |
僅適用於運行時間NODE.JS。 將 Azure Blob 下載至本機檔案。 如果指定的檔案路徑已經結束,就會失敗。 位移和計數是選擇性的,分別傳遞 0 和未定義,以下載整個 Blob。 |
exists(Blob |
如果此用戶端所代表的 Azure Blob 資源存在,則傳回 true;否則為 false。 注意:請小心使用此函式,因為其他用戶端或應用程式可能會刪除現有的 Blob。 反之亦然,此函式完成之後,其他用戶端或應用程式可能會新增新的 Blob。 |
generate |
僅適用於使用共用密鑰認證建構的 BlobClient。 根據傳入的用戶端屬性和參數,產生 Blob 服務共用存取簽章 (SAS) URI。 SAS 是由客戶端的共用金鑰認證所簽署。 請參閱 https://docs.microsoft.com/en-us/rest/api/storageservices/constructing-a-service-sas |
get |
取得帳戶資訊作業會傳回指定帳戶的 SKU 名稱和帳戶種類。 從 2018-03-28 版開始的服務版本,即可取得帳戶資訊作業。 請參閱 https://docs.microsoft.com/en-us/rest/api/storageservices/get-account-information |
get |
建立 AppendBlobClient 物件。 |
get |
取得管理 Blob 租用的 BlobLeaseClient。 |
get |
建立 BlockBlobClient 物件。 |
get |
建立 PageBlobClient 物件。 |
get |
傳回 Blob 的所有使用者定義元數據、標準 HTTP 屬性和系統屬性。 它不會傳回 Blob 的內容。 請參閱 https://docs.microsoft.com/en-us/rest/api/storageservices/get-blob-properties 警告:回應中傳回的 |
get |
取得與基礎 Blob 相關聯的標記。 |
set |
設定 Blob 上的層。 此作業允許在進階記憶體帳戶中的分頁 Blob 和 Blob 記憶體帳戶中的區塊 Blob 上(僅限本地備援記憶體)。 進階分頁 Blob 的層會決定 Blob 的允許大小、IOPS 和頻寬。 區塊 Blob 的層會決定經常性存取/非經常性存取/封存記憶體類型。 此作業不會更新 Blob 的 ETag。 請參閱 https://docs.microsoft.com/en-us/rest/api/storageservices/set-blob-tier |
set |
設定 Blob 上的系統屬性。 如果未提供任何值,或未為指定的 Blob HTTP 標頭提供任何值,則會清除沒有值的這些 Blob HTTP 標頭。 請參閱 https://docs.microsoft.com/en-us/rest/api/storageservices/set-blob-properties |
set |
在 Blob 上設定不變性原則。 |
set |
在 Blob 上設定合法保留。 |
set |
將指定 Blob 的使用者定義元資料設定為一或多個名稱/值組。 如果未提供任何選項,或參數中未定義任何元數據,則會移除 Blob 元數據。 請參閱 https://docs.microsoft.com/en-us/rest/api/storageservices/set-blob-metadata |
set |
設定基礎 Blob 上的標記。 Blob 最多可以有 10 個標記。 標記索引鍵必須介於 1 到 128 個字元之間。 卷標值必須介於 0 到 256 個字元之間。 有效的標記索引鍵和值字元包括小寫字母和大寫字母、數位(0-9)、空格(')、加號('+')、減號('-')、句號('/')、正斜線('/')、冒號(':')、等號('=')和底線('_')。 |
sync |
同步的複製來源 URL 作業會將 Blob 或因特網資源複製到新的 Blob。 在複製完成之前,它不會傳回回應。 請參閱 https://docs.microsoft.com/en-us/rest/api/storageservices/copy-blob-from-url |
undelete(Blob |
還原虛刪除 Blob 的內容和元數據,以及任何相關聯的虛刪除快照集。 只有 2017-07-29 版或更新版本才支援取消刪除 Blob。 請參閱 https://docs.microsoft.com/en-us/rest/api/storageservices/undelete-blob |
with |
建立指向此 Blob 版本的新 BlobClient 物件。 提供 「“ 會移除 versionId,並將用戶端傳回基底 Blob。 |
建構函式詳細資料
BlockBlobClient(string, PipelineLike)
建立 BlockBlobClient 的實例。 此方法接受指向區塊 Blob 的編碼 URL 或非編碼 URL。 編碼的 URL 字串不會逸出兩次,只會逸出 URL 路徑中的特殊字元。 如果 Blob 名稱包含 ? 或 %,Blob 名稱必須在 URL 中編碼。
new BlockBlobClient(url: string, pipeline: PipelineLike)
參數
- url
-
string
指向 Azure 記憶體區塊 Blob 的 URL 字串串,例如 「https://myaccount.blob.core.windows.net/mycontainer/blockblob"。 如果使用 AnonymousCredential,則可以附加 SAS,例如 “https://myaccount.blob.core.windows.net/mycontainer/blockblob?sasString"。 此方法接受指向 Blob 的編碼 URL 或非編碼 URL。 編碼的 URL 字串不會逸出兩次,只會逸出 URL 路徑中的特殊字元。 不過,如果 Blob 名稱包含 ? 或 %,Blob 名稱必須在 URL 中編碼。 例如名為 「my?blob%」的 Blob,URL 應該是 「https://myaccount.blob.core.windows.net/mycontainer/my%3Fblob%25"。
- pipeline
- PipelineLike
呼叫 newPipeline() 以建立預設管線,或提供自定義管線。
BlockBlobClient(string, StorageSharedKeyCredential | AnonymousCredential | TokenCredential, StoragePipelineOptions)
建立 BlockBlobClient 的實例。 此方法接受指向區塊 Blob 的編碼 URL 或非編碼 URL。 編碼的 URL 字串不會逸出兩次,只會逸出 URL 路徑中的特殊字元。 如果 Blob 名稱包含 ? 或 %,Blob 名稱必須在 URL 中編碼。
new BlockBlobClient(url: string, credential?: StorageSharedKeyCredential | AnonymousCredential | TokenCredential, options?: StoragePipelineOptions)
參數
- url
-
string
指向 Azure 記憶體區塊 Blob 的 URL 字串串,例如 「https://myaccount.blob.core.windows.net/mycontainer/blockblob"。 如果使用 AnonymousCredential,則可以附加 SAS,例如 “https://myaccount.blob.core.windows.net/mycontainer/blockblob?sasString"。 此方法接受指向 Blob 的編碼 URL 或非編碼 URL。 編碼的 URL 字串不會逸出兩次,只會逸出 URL 路徑中的特殊字元。 不過,如果 Blob 名稱包含 ? 或 %,Blob 名稱必須在 URL 中編碼。 例如名為 「my?blob%」的 Blob,URL 應該是 「https://myaccount.blob.core.windows.net/mycontainer/my%3Fblob%25"。
- credential
-
StorageSharedKeyCredential | AnonymousCredential | TokenCredential
例如 AnonymousCredential、StorageSharedKeyCredential 或任何來自 @azure/identity
套件的認證,以驗證對服務的要求。 您也可以提供實作 TokenCredential 介面的物件。 如果未指定,則會使用 AnonymousCredential。
- options
- StoragePipelineOptions
自選。 設定 HTTP 管線的選項。
BlockBlobClient(string, string, string, StoragePipelineOptions)
建立 BlockBlobClient 的實例。
new BlockBlobClient(connectionString: string, containerName: string, blobName: string, options?: StoragePipelineOptions)
參數
- connectionString
-
string
帳戶連接字串或 Azure 記憶體帳戶的 SAS 連接字串。
[ 注意 - 帳戶連接字串只能在NODE.JS運行時間使用。 ] 帳戶連接字串範例 -
DefaultEndpointsProtocol=https;AccountName=myaccount;AccountKey=accountKey;EndpointSuffix=core.windows.net
SAS 連接字串範例 - BlobEndpoint=https://myaccount.blob.core.windows.net/;QueueEndpoint=https://myaccount.queue.core.windows.net/;FileEndpoint=https://myaccount.file.core.windows.net/;TableEndpoint=https://myaccount.table.core.windows.net/;SharedAccessSignature=sasString
- containerName
-
string
容器名稱。
- blobName
-
string
Blob 名稱。
- options
- StoragePipelineOptions
自選。 設定 HTTP 管線的選項。
屬性詳細資料
containerName
Blob 相關聯的記憶體容器名稱。
string containerName
屬性值
string
name
Blob 的名稱。
string name
屬性值
string
繼承的屬性詳細資料
accountName
credential
例如 AnonymousCredential、StorageSharedKeyCredential 或任何來自 @azure/identity
套件的認證,以驗證對服務的要求。 您也可以提供實作 TokenCredential 介面的物件。 如果未指定,則會使用 AnonymousCredential。
credential: StorageSharedKeyCredential | AnonymousCredential | TokenCredential
屬性值
url
方法詳細資料
commitBlockList(string[], BlockBlobCommitBlockListOptions)
指定組成 Blob 的區塊識別碼清單,以寫入 Blob。 若要寫入為 Blob 的一部分,區塊必須已在先前的 stageBlock 作業中成功寫入伺服器。 您可以呼叫 commitBlockList,只上傳已變更的區塊,然後一起認可新的和現有的區塊,以更新 Blob。 區塊清單中未指定且永久刪除的任何區塊。
請參閱 https://docs.microsoft.com/rest/api/storageservices/put-block-list
function commitBlockList(blocks: string[], options?: BlockBlobCommitBlockListOptions): Promise<BlockBlobCommitBlockListResponse>
參數
- blocks
-
string[]
base64 編碼的64位元組值陣列
- options
- BlockBlobCommitBlockListOptions
區塊 Blob 認可區塊清單作業的選項。
傳回
Promise<BlockBlobCommitBlockListResponse>
區塊 Blob 認可區塊清單作業的響應數據。
getBlockList(BlockListType, BlockBlobGetBlockListOptions)
使用指定的區塊清單篩選,傳回已上傳為區塊 Blob 一部分的區塊清單。
請參閱 https://docs.microsoft.com/rest/api/storageservices/get-block-list
function getBlockList(listType: BlockListType, options?: BlockBlobGetBlockListOptions): Promise<BlockBlobGetBlockListResponse>
參數
- listType
- BlockListType
指定是要傳回已認可區塊的清單、未認可的區塊清單,還是同時傳回這兩個清單。
- options
- BlockBlobGetBlockListOptions
區塊 Blob 取得封鎖清單作業的選項。
傳回
Promise<BlockBlobGetBlockListResponse>
區塊 Blob 取得封鎖清單作業的響應數據。
query(string, BlockBlobQueryOptions)
僅適用於運行時間NODE.JS。
JSON 或 CSV 格式化 Blob 的快速查詢。
範例使用方式 (Node.js):
// Query and convert a blob to a string
const queryBlockBlobResponse = await blockBlobClient.query("select * from BlobStorage");
const downloaded = (await streamToBuffer(queryBlockBlobResponse.readableStreamBody)).toString();
console.log("Query blob content:", downloaded);
async function streamToBuffer(readableStream) {
return new Promise((resolve, reject) => {
const chunks = [];
readableStream.on("data", (data) => {
chunks.push(data instanceof Buffer ? data : Buffer.from(data));
});
readableStream.on("end", () => {
resolve(Buffer.concat(chunks));
});
readableStream.on("error", reject);
});
}
function query(query: string, options?: BlockBlobQueryOptions): Promise<BlobDownloadResponseModel>
參數
- query
-
string
- options
- BlockBlobQueryOptions
傳回
Promise<BlobDownloadResponseModel>
stageBlock(string, RequestBodyType, number, BlockBlobStageBlockOptions)
將指定的區塊上傳至區塊 Blob 的「暫存區域」,以供呼叫 commitBlockList 稍後認可。
請參閱 https://docs.microsoft.com/rest/api/storageservices/put-block
function stageBlock(blockId: string, body: RequestBodyType, contentLength: number, options?: BlockBlobStageBlockOptions): Promise<BlockBlobStageBlockResponse>
參數
- blockId
-
string
base64 編碼的64位元組值
- body
- HttpRequestBody
要上傳至暫存區域的數據。
- contentLength
-
number
要上傳的位元組數目。
- options
- BlockBlobStageBlockOptions
區塊 Blob 階段區塊作業的選項。
傳回
Promise<BlockBlobStageBlockResponse>
區塊 Blob 階段區塊作業的響應數據。
stageBlockFromURL(string, string, number, number, BlockBlobStageBlockFromURLOptions)
階段封鎖 URL 作業會建立要認可的新區塊,做為從 URL 讀取內容的 Blob 的一部分。 此 API 可從 2018-03-28 版開始提供。
請參閱 https://docs.microsoft.com/en-us/rest/api/storageservices/put-block-from-url
function stageBlockFromURL(blockId: string, sourceURL: string, offset?: number, count?: number, options?: BlockBlobStageBlockFromURLOptions): Promise<BlockBlobStageBlockFromURLResponse>
參數
- blockId
-
string
base64 編碼的64位元組值
- sourceURL
-
string
指定 Blob 的 URL。 此值的長度可能高達 2 KB,指定 Blob。 此值應該以 URL 編碼,因為它會出現在要求 URI 中。 來源 Blob 必須是公用,或必須透過共用存取簽章進行驗證。 如果來源 Blob 是公用的,則不需要驗證即可執行作業。 以下是來源物件 URL 的一些範例: - https://myaccount.blob.core.windows.net/mycontainer/myblob - https://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot=
- offset
-
number
要下載的 Blob 位置,大於或等於 0
- count
-
number
要下載的數據量,大於0。 將在未定義時下載至結尾
區塊 Blob 階段區塊 From URL 作業的選項。
傳回
Promise<BlockBlobStageBlockFromURLResponse>
區塊 Blob 階段區塊 From URL 作業的響應數據。
syncUploadFromURL(string, BlockBlobSyncUploadFromURLOptions)
建立新的區塊 Blob,其中 Blob 的內容會從指定的 URL 讀取。 從 2020-04-08 版本開始,支援此 API。 從 URL 放置 Blob 不支援部分更新;現有 Blob 的內容會以新 Blob 的內容覆寫。 若要使用來源 URL 對區塊 Blob 的內容執行部分更新,請使用 stageBlockFromURL 和 commitBlockList。
function syncUploadFromURL(sourceURL: string, options?: BlockBlobSyncUploadFromURLOptions): Promise<BlockBlobPutBlobFromUrlResponse>
參數
- sourceURL
-
string
指定 Blob 的 URL。 此值的長度可能高達 2 KB,指定 Blob。 此值應該以 URL 編碼,因為它會出現在要求 URI 中。 來源 Blob 必須是公用,或必須透過共用存取簽章進行驗證。 如果來源 Blob 是公用的,則不需要驗證即可執行作業。 以下是來源物件 URL 的一些範例: - https://myaccount.blob.core.windows.net/mycontainer/myblob - https://myaccount.blob.core.windows.net/mycontainer/myblob?snapshot=
選擇性參數。
傳回
Promise<BlockBlobPutBlobFromUrlResponse>
upload(RequestBodyType, number, BlockBlobUploadOptions)
建立新的區塊 Blob,或更新現有區塊 Blob 的內容。 更新現有的區塊 Blob 會覆寫 Blob 上任何現有的元數據。 不支援部分更新;現有 Blob 的內容會以新內容覆寫。 若要執行區塊 Blob 的部分更新,請使用 stageBlock 和 commitBlockList。
這是非平行上傳方法,請使用 uploadFile、uploadStream 或 uploadBrowserData,以取得並行上傳的更佳效能。
請參閱 https://docs.microsoft.com/rest/api/storageservices/put-blob
function upload(body: RequestBodyType, contentLength: number, options?: BlockBlobUploadOptions): Promise<BlockBlobUploadResponse>
參數
- body
- HttpRequestBody
Blob、字串、ArrayBuffer、ArrayBufferView 或函式,會傳回新的可讀取數據流,其位移從數據源開始。
- contentLength
-
number
以位元組為單位的主體長度。 使用 Buffer.byteLength() 來計算字串串的主體長度,包括非 Base64/Hex 編碼字元。
- options
- BlockBlobUploadOptions
區塊 Blob 上傳作業的選項。
傳回
Promise<BlockBlobUploadResponse>
區塊 Blob 上傳作業的響應數據。
範例用法:
const content = "Hello world!";
const uploadBlobResponse = await blockBlobClient.upload(content, content.length);
uploadBrowserData(Blob | ArrayBuffer | ArrayBufferView, BlockBlobParallelUploadOptions)
僅適用於瀏覽器。
將瀏覽器 Blob/File/ArrayBuffer/ArrayBufferView 對象上傳至區塊 Blob。
當緩衝區長度小於或等於 256MB 時,這個方法會使用 1 個上傳呼叫來完成上傳。 否則,這個方法會呼叫 stageBlock 來上傳區塊,最後呼叫 commitBlockList 認可區塊清單。
要設定的常見 blobHTTPHeaders 選項是 blobContentType
,讓瀏覽器可以根據檔類型提供功能。
function uploadBrowserData(browserData: Blob | ArrayBuffer | ArrayBufferView, options?: BlockBlobParallelUploadOptions): Promise<BlobUploadCommonResponse>
參數
- browserData
-
Blob | ArrayBuffer | ArrayBufferView
Blob、檔案、ArrayBuffer 或 ArrayBufferView
- options
- BlockBlobParallelUploadOptions
上傳瀏覽器數據的選項。
傳回
Promise<BlobUploadCommonResponse>
Blob 上傳作業的響應數據。
uploadData(Blob | ArrayBuffer | ArrayBufferView | Buffer, BlockBlobParallelUploadOptions)
將 Buffer(Node.js)/Blob(browsers)/ArrayBuffer/ArrayBufferView 物件上傳至 BlockBlob。
當數據長度不超過指定的 maxSingleShotSize (預設值為 <xref:BLOCK_BLOB_MAX_UPLOAD_BLOB_BYTES>),這個方法會使用 1 上傳 呼叫來完成上傳。 否則,這個方法會呼叫 stageBlock 來上傳區塊,最後呼叫 commitBlockList 認可區塊清單。
要設定的常見 blobHTTPHeaders 選項是 blobContentType
,讓瀏覽器可以根據檔類型提供功能。
function uploadData(data: Blob | ArrayBuffer | ArrayBufferView | Buffer, options?: BlockBlobParallelUploadOptions): Promise<BlobUploadCommonResponse>
參數
- data
-
Blob | ArrayBuffer | ArrayBufferView | Buffer
Buffer(Node.js)、Blob、ArrayBuffer 或 ArrayBufferView
- options
- BlockBlobParallelUploadOptions
傳回
Promise<BlobUploadCommonResponse>
uploadFile(string, BlockBlobParallelUploadOptions)
僅適用於運行時間NODE.JS。
將區塊中的本機檔案上傳至區塊 Blob。
當檔案大小小於或等於 256MB 時,這個方法會使用 1 個上傳呼叫來完成上傳。 否則,此方法會呼叫 stageBlock 來上傳區塊,最後呼叫 commitBlockList 來認可區塊清單。
function uploadFile(filePath: string, options?: BlockBlobParallelUploadOptions): Promise<BlobUploadCommonResponse>
參數
- filePath
-
string
本機檔案的完整路徑
- options
- BlockBlobParallelUploadOptions
上傳至區塊 Blob 作業的選項。
傳回
Promise<BlobUploadCommonResponse>
Blob 上傳作業的響應數據。
uploadStream(Readable, number, number, BlockBlobUploadStreamOptions)
僅適用於運行時間NODE.JS。
將 Node.js 可讀取數據流上傳至區塊 Blob。
效能改進秘訣:
- 輸入數據流 highWaterMark 最好使用 bufferSize 參數設定相同的值,以避免 Buffer.concat() 作業。
function uploadStream(stream: Readable, bufferSize?: number, maxConcurrency?: number, options?: BlockBlobUploadStreamOptions): Promise<BlobUploadCommonResponse>
參數
- stream
-
Readable
Node.js 可讀取數據流
- bufferSize
-
number
配置的每個緩衝區大小,也是上傳區塊 Blob 中的區塊大小。 預設值為 8MB
- maxConcurrency
-
number
最大並行表示可以配置的緩衝區數目上限、與上傳並行上限的正相互關聯。 預設值為 5
- options
- BlockBlobUploadStreamOptions
將數據流上傳至區塊 Blob 作業的選項。
傳回
Promise<BlobUploadCommonResponse>
Blob 上傳作業的響應數據。
withSnapshot(string)
建立與來源相同的新 BlockBlobClient 物件,但具有指定的快照集時間戳。 提供 “” 會移除快照集,並將 URL 傳回至基底 Blob。
function withSnapshot(snapshot: string): BlockBlobClient
參數
- snapshot
-
string
快照集時間戳。
傳回
新的 BlockBlobClient 對象與來源相同,但具有指定的快照集時間戳。
繼承的方法的詳細資料
abortCopyFromURL(string, BlobAbortCopyFromURLOptions)
中止暫止的異步複製 Blob 作業,並保留長度為零和完整元數據的目的地 Blob。 版本 2012-02-12 和更新版本。
請參閱 https://docs.microsoft.com/en-us/rest/api/storageservices/abort-copy-blob
function abortCopyFromURL(copyId: string, options?: BlobAbortCopyFromURLOptions): Promise<BlobAbortCopyFromURLResponse>
參數
- copyId
-
string
複製 URL 作業的識別碼。
- options
- BlobAbortCopyFromURLOptions
Blob 中止複製 URL 作業的選擇性選項。
傳回
Promise<BlobAbortCopyFromURLResponse>
beginCopyFromURL(string, BlobBeginCopyFromURLOptions)
以異步方式將 Blob 複製到記憶體帳戶內的目的地。
這個方法會傳回長時間執行的作業輪詢器,可讓您無限期地等候,直到複製完成為止。
您也可以在輪詢程式上呼叫 cancelOperation
,以在複本完成之前取消複本。
請注意,如果作業在第一個要求中完成,而且嘗試取消已完成的複本會導致擲回錯誤,則不會叫用 onProgress 回呼。
在 2012-02-12 版和更新版本中,複製 Blob 作業的來源可以是任何 Azure 記憶體帳戶中的認可 Blob。 從 2015-02-21 版開始,複製 Blob 作業的來源可以是任何 Azure 記憶體帳戶中的 Azure 檔案。 只有在 2012 年 6 月 7 日或之後建立的記憶體帳戶,才能讓複製 Blob 作業從另一個記憶體帳戶複製。
請參閱 https://docs.microsoft.com/en-us/rest/api/storageservices/copy-blob
使用自動輪詢的範例:
const copyPoller = await blobClient.beginCopyFromURL('url');
const result = await copyPoller.pollUntilDone();
使用手動輪詢的範例:
const copyPoller = await blobClient.beginCopyFromURL('url');
while (!poller.isDone()) {
await poller.poll();
}
const result = copyPoller.getResult();
使用進度更新的範例:
const copyPoller = await blobClient.beginCopyFromURL('url', {
onProgress(state) {
console.log(`Progress: ${state.copyProgress}`);
}
});
const result = await copyPoller.pollUntilDone();
使用變更輪詢間隔的範例 (預設值 15 秒):
const copyPoller = await blobClient.beginCopyFromURL('url', {
intervalInMs: 1000 // poll blob every 1 second for copy progress
});
const result = await copyPoller.pollUntilDone();
使用複製取消的範例:
const copyPoller = await blobClient.beginCopyFromURL('url');
// cancel operation after starting it.
try {
await copyPoller.cancelOperation();
// calls to get the result now throw PollerCancelledError
await copyPoller.getResult();
} catch (err) {
if (err.name === 'PollerCancelledError') {
console.log('The copy was cancelled.');
}
}
function beginCopyFromURL(copySource: string, options?: BlobBeginCopyFromURLOptions): Promise<PollerLikeWithCancellation<PollOperationState<BlobBeginCopyFromURLResponse>, BlobBeginCopyFromURLResponse>>
參數
- copySource
-
string
來源 Azure Blob/檔案的 URL。
- options
- BlobBeginCopyFromURLOptions
Blob 開始複製 URL 作業的選擇性選項。
傳回
createSnapshot(BlobCreateSnapshotOptions)
建立 Blob 的唯讀快照集。
請參閱 https://docs.microsoft.com/en-us/rest/api/storageservices/snapshot-blob
function createSnapshot(options?: BlobCreateSnapshotOptions): Promise<BlobCreateSnapshotResponse>
參數
- options
- BlobCreateSnapshotOptions
Blob 建立快照集作業的選擇性選項。
傳回
Promise<BlobCreateSnapshotResponse>
delete(BlobDeleteOptions)
標示要刪除的指定 Blob 或快照集。 Blob 稍後會在垃圾收集期間刪除。 請注意,若要刪除 Blob,您必須刪除其所有快照集。 您可以使用刪除 Blob 作業同時刪除兩者。
請參閱 https://docs.microsoft.com/en-us/rest/api/storageservices/delete-blob
function delete(options?: BlobDeleteOptions): Promise<BlobDeleteResponse>
參數
- options
- BlobDeleteOptions
Blob 刪除作業的選擇性選項。
傳回
Promise<BlobDeleteResponse>
deleteIfExists(BlobDeleteOptions)
如果存在,請標記指定的 Blob 或快照集進行刪除。 Blob 稍後會在垃圾收集期間刪除。 請注意,若要刪除 Blob,您必須刪除其所有快照集。 您可以使用刪除 Blob 作業同時刪除兩者。
請參閱 https://docs.microsoft.com/en-us/rest/api/storageservices/delete-blob
function deleteIfExists(options?: BlobDeleteOptions): Promise<BlobDeleteIfExistsResponse>
參數
- options
- BlobDeleteOptions
Blob 刪除作業的選擇性選項。
傳回
Promise<BlobDeleteIfExistsResponse>
deleteImmutabilityPolicy(BlobDeleteImmutabilityPolicyOptions)
刪除 Blob 上的不固定原則。
function deleteImmutabilityPolicy(options?: BlobDeleteImmutabilityPolicyOptions): Promise<BlobDeleteImmutabilityPolicyResponse>
參數
刪除 Blob 上不變性原則的選擇性選項。
傳回
Promise<BlobDeleteImmutabilityPolicyResponse>
download(number, number, BlobDownloadOptions)
從系統讀取或下載 Blob,包括其元數據和屬性。 您也可以呼叫取得 Blob 來讀取快照集。
- 在 Node.js中,數據會在可讀取數據流中傳回 readableStreamBody
- 在瀏覽器中,數據會在 promise blobBody 中傳回
請參閱 https://docs.microsoft.com/en-us/rest/api/storageservices/get-blob
function download(offset?: number, count?: number, options?: BlobDownloadOptions): Promise<BlobDownloadResponseParsed>
參數
- offset
-
number
要下載的 Blob 位置,大於或等於 0
- count
-
number
要下載的數據量,大於0。 將在未定義時下載至結尾
- options
- BlobDownloadOptions
Blob 下載作業的選擇性選項。
範例使用方式 (Node.js):
// Download and convert a blob to a string
const downloadBlockBlobResponse = await blobClient.download();
const downloaded = await streamToBuffer(downloadBlockBlobResponse.readableStreamBody);
console.log("Downloaded blob content:", downloaded.toString());
async function streamToBuffer(readableStream) {
return new Promise((resolve, reject) => {
const chunks = [];
readableStream.on("data", (data) => {
chunks.push(data instanceof Buffer ? data : Buffer.from(data));
});
readableStream.on("end", () => {
resolve(Buffer.concat(chunks));
});
readableStream.on("error", reject);
});
}
範例使用方式(瀏覽器):
// Download and convert a blob to a string
const downloadBlockBlobResponse = await blobClient.download();
const downloaded = await blobToString(await downloadBlockBlobResponse.blobBody);
console.log(
"Downloaded blob content",
downloaded
);
async function blobToString(blob: Blob): Promise<string> {
const fileReader = new FileReader();
return new Promise<string>((resolve, reject) => {
fileReader.onloadend = (ev: any) => {
resolve(ev.target!.result);
};
fileReader.onerror = reject;
fileReader.readAsText(blob);
});
}
傳回
Promise<BlobDownloadResponseParsed>
downloadToBuffer(Buffer, number, number, BlobDownloadToBufferOptions)
僅適用於運行時間NODE.JS。
平行下載 Azure Blob 至緩衝區。 位移和計數是選擇性的,如果未提供,則會下載整個 Blob。
警告:緩衝區只能在32位系統上支援最多一 GB 的檔案,或64位系統上最多支援大約2 GB的檔案,因為 Node.js/V8的限制。 對於大於此大小的 Blob,請考慮 downloadToFile。
function downloadToBuffer(buffer: Buffer, offset?: number, count?: number, options?: BlobDownloadToBufferOptions): Promise<Buffer>
參數
- buffer
-
Buffer
要填滿的緩衝區,長度必須大於計數
- offset
-
number
要下載的區塊 Blob 位置(以位元組為單位)
- count
-
number
要下載多少數據(以位元組為單位)。 會在傳遞未定義時下載至結尾
- options
- BlobDownloadToBufferOptions
BlobDownloadToBufferOptions
傳回
Promise<Buffer>
downloadToBuffer(number, number, BlobDownloadToBufferOptions)
僅適用於運行時間NODE.JS。
平行下載 Azure Blob 至緩衝區。 位移和計數是選擇性的,如果未提供,則會下載整個 Blob。
警告:緩衝區只能在32位系統上支援最多一 GB 的檔案,或64位系統上最多支援大約2 GB的檔案,因為 Node.js/V8的限制。 對於大於此大小的 Blob,請考慮 downloadToFile。
function downloadToBuffer(offset?: number, count?: number, options?: BlobDownloadToBufferOptions): Promise<Buffer>
參數
- offset
-
number
要下載的區塊 Blob 位置(以位元組為單位)
- count
-
number
要下載多少數據(以位元組為單位)。 會在傳遞未定義時下載至結尾
- options
- BlobDownloadToBufferOptions
BlobDownloadToBufferOptions
傳回
Promise<Buffer>
downloadToFile(string, number, number, BlobDownloadOptions)
僅適用於運行時間NODE.JS。
將 Azure Blob 下載至本機檔案。 如果指定的檔案路徑已經結束,就會失敗。 位移和計數是選擇性的,分別傳遞 0 和未定義,以下載整個 Blob。
function downloadToFile(filePath: string, offset?: number, count?: number, options?: BlobDownloadOptions): Promise<BlobDownloadResponseParsed>
參數
- filePath
-
string
- offset
-
number
要下載的區塊 Blob 位置。
- count
-
number
要下載的數據量。 會在傳遞未定義時下載至結尾。
- options
- BlobDownloadOptions
Blob 下載選項的選項。
傳回
Promise<BlobDownloadResponseParsed>
Blob 下載作業的響應數據,但已將可讀取StreamBody 設定為未定義,因為其內容已經讀取並寫入指定路徑的本機檔案中。
exists(BlobExistsOptions)
如果此用戶端所代表的 Azure Blob 資源存在,則傳回 true;否則為 false。
注意:請小心使用此函式,因為其他用戶端或應用程式可能會刪除現有的 Blob。 反之亦然,此函式完成之後,其他用戶端或應用程式可能會新增新的 Blob。
function exists(options?: BlobExistsOptions): Promise<boolean>
參數
- options
- BlobExistsOptions
[存在] 作業的選項。
傳回
Promise<boolean>
generateSasUrl(BlobGenerateSasUrlOptions)
僅適用於使用共用密鑰認證建構的 BlobClient。
根據傳入的用戶端屬性和參數,產生 Blob 服務共用存取簽章 (SAS) URI。 SAS 是由客戶端的共用金鑰認證所簽署。
請參閱 https://docs.microsoft.com/en-us/rest/api/storageservices/constructing-a-service-sas
function generateSasUrl(options: BlobGenerateSasUrlOptions): Promise<string>
參數
- options
- BlobGenerateSasUrlOptions
選擇性參數。
傳回
Promise<string>
由此用戶端所代表資源的 URI 所組成的 SAS URI,後面接著產生的 SAS 令牌。
getAccountInfo(BlobGetAccountInfoOptions)
取得帳戶資訊作業會傳回指定帳戶的 SKU 名稱和帳戶種類。 從 2018-03-28 版開始的服務版本,即可取得帳戶資訊作業。
請參閱 https://docs.microsoft.com/en-us/rest/api/storageservices/get-account-information
function getAccountInfo(options?: BlobGetAccountInfoOptions): Promise<BlobGetAccountInfoResponse>
參數
- options
- BlobGetAccountInfoOptions
服務取得帳戶資訊作業的選項。
傳回
Promise<BlobGetAccountInfoResponse>
服務取得帳戶資訊作業的響應數據。
getAppendBlobClient()
建立 AppendBlobClient 物件。
function getAppendBlobClient(): AppendBlobClient
傳回
getBlobLeaseClient(string)
取得管理 Blob 租用的 BlobLeaseClient。
function getBlobLeaseClient(proposeLeaseId?: string): BlobLeaseClient
參數
- proposeLeaseId
-
string
初始建議的租用標識碼。
傳回
用於管理 Blob 租用的新 BlobLeaseClient 物件。
getBlockBlobClient()
建立 BlockBlobClient 物件。
function getBlockBlobClient(): BlockBlobClient
傳回
getPageBlobClient()
建立 PageBlobClient 物件。
function getPageBlobClient(): PageBlobClient
傳回
getProperties(BlobGetPropertiesOptions)
傳回 Blob 的所有使用者定義元數據、標準 HTTP 屬性和系統屬性。 它不會傳回 Blob 的內容。
請參閱 https://docs.microsoft.com/en-us/rest/api/storageservices/get-blob-properties
警告:回應中傳回的 metadata
物件會以小寫表示,即使它們原本包含大寫字元也一樣。 這與使用 includeMetadata
選項列出 blob 的方法 ContainerCl ient 方法所傳回的元數據索引鍵不同,該選項會保留其原始大小寫。
function getProperties(options?: BlobGetPropertiesOptions): Promise<BlobGetPropertiesResponse>
參數
- options
- BlobGetPropertiesOptions
取得屬性作業的選擇性選項。
傳回
Promise<BlobGetPropertiesResponse>
getTags(BlobGetTagsOptions)
取得與基礎 Blob 相關聯的標記。
function getTags(options?: BlobGetTagsOptions): Promise<BlobGetTagsResponse>
參數
- options
- BlobGetTagsOptions
傳回
Promise<BlobGetTagsResponse>
setAccessTier(string, BlobSetTierOptions)
設定 Blob 上的層。 此作業允許在進階記憶體帳戶中的分頁 Blob 和 Blob 記憶體帳戶中的區塊 Blob 上(僅限本地備援記憶體)。 進階分頁 Blob 的層會決定 Blob 的允許大小、IOPS 和頻寬。 區塊 Blob 的層會決定經常性存取/非經常性存取/封存記憶體類型。 此作業不會更新 Blob 的 ETag。
請參閱 https://docs.microsoft.com/en-us/rest/api/storageservices/set-blob-tier
function setAccessTier(tier: string, options?: BlobSetTierOptions): Promise<BlobSetTierResponse>
參數
- tier
-
string
要設定於 Blob 上的層。 有效值為經常性存取、非經常性存取或封存。
- options
- BlobSetTierOptions
Blob 設定層作業的選擇性選項。
傳回
Promise<BlobSetTierResponse>
setHTTPHeaders(BlobHTTPHeaders, BlobSetHTTPHeadersOptions)
設定 Blob 上的系統屬性。
如果未提供任何值,或未為指定的 Blob HTTP 標頭提供任何值,則會清除沒有值的這些 Blob HTTP 標頭。
請參閱 https://docs.microsoft.com/en-us/rest/api/storageservices/set-blob-properties
function setHTTPHeaders(blobHTTPHeaders?: BlobHTTPHeaders, options?: BlobSetHTTPHeadersOptions): Promise<BlobSetHTTPHeadersResponse>
參數
- blobHTTPHeaders
- BlobHTTPHeaders
如果未提供任何值,或未為指定的 Blob HTTP 標頭提供任何值,則會清除沒有值的這些 Blob HTTP 標頭。
要設定的通用標頭是 blobContentType
讓瀏覽器根據檔類型提供功能。
- options
- BlobSetHTTPHeadersOptions
Blob 設定 HTTP 標頭作業的選擇性選項。
傳回
Promise<BlobSetHTTPHeadersResponse>
setImmutabilityPolicy(BlobImmutabilityPolicy, BlobSetImmutabilityPolicyOptions)
在 Blob 上設定不變性原則。
function setImmutabilityPolicy(immutabilityPolicy: BlobImmutabilityPolicy, options?: BlobSetImmutabilityPolicyOptions): Promise<BlobSetImmutabilityPolicyResponse>
參數
- immutabilityPolicy
- BlobImmutabilityPolicy
- options
- BlobSetImmutabilityPolicyOptions
在 Blob 上設定不變性原則的選擇性選項。
傳回
Promise<BlobSetImmutabilityPolicyResponse>
setLegalHold(boolean, BlobSetLegalHoldOptions)
在 Blob 上設定合法保留。
function setLegalHold(legalHoldEnabled: boolean, options?: BlobSetLegalHoldOptions): Promise<BlobSetLegalHoldResponse>
參數
- legalHoldEnabled
-
boolean
- options
- BlobSetLegalHoldOptions
在 Blob 上設定合法保留的選擇性選項。
傳回
Promise<BlobSetLegalHoldResponse>
setMetadata(Metadata, BlobSetMetadataOptions)
將指定 Blob 的使用者定義元資料設定為一或多個名稱/值組。
如果未提供任何選項,或參數中未定義任何元數據,則會移除 Blob 元數據。
請參閱 https://docs.microsoft.com/en-us/rest/api/storageservices/set-blob-metadata
function setMetadata(metadata?: Metadata, options?: BlobSetMetadataOptions): Promise<BlobSetMetadataResponse>
參數
- metadata
- Metadata
將現有的元數據取代為此值。 如果未提供任何值,則會移除現有的元數據。
- options
- BlobSetMetadataOptions
設定元數據作業的選擇性選項。
傳回
Promise<BlobSetMetadataResponse>
setTags(Tags, BlobSetTagsOptions)
設定基礎 Blob 上的標記。 Blob 最多可以有 10 個標記。 標記索引鍵必須介於 1 到 128 個字元之間。 卷標值必須介於 0 到 256 個字元之間。 有效的標記索引鍵和值字元包括小寫字母和大寫字母、數位(0-9)、空格(')、加號('+')、減號('-')、句號('/')、正斜線('/')、冒號(':')、等號('=')和底線('_')。
function setTags(tags: Tags, options?: BlobSetTagsOptions): Promise<BlobSetTagsResponse>
參數
- tags
- Tags
- options
- BlobSetTagsOptions
傳回
Promise<BlobSetTagsResponse>
syncCopyFromURL(string, BlobSyncCopyFromURLOptions)
同步的複製來源 URL 作業會將 Blob 或因特網資源複製到新的 Blob。 在複製完成之前,它不會傳回回應。
請參閱 https://docs.microsoft.com/en-us/rest/api/storageservices/copy-blob-from-url
function syncCopyFromURL(copySource: string, options?: BlobSyncCopyFromURLOptions): Promise<BlobCopyFromURLResponse>
參數
- copySource
-
string
要從複製的來源 URL,可能需要共用存取簽章(SAS)才能進行驗證
- options
- BlobSyncCopyFromURLOptions
傳回
Promise<BlobCopyFromURLResponse>
undelete(BlobUndeleteOptions)
還原虛刪除 Blob 的內容和元數據,以及任何相關聯的虛刪除快照集。 只有 2017-07-29 版或更新版本才支援取消刪除 Blob。
請參閱 https://docs.microsoft.com/en-us/rest/api/storageservices/undelete-blob
function undelete(options?: BlobUndeleteOptions): Promise<BlobUndeleteResponse>
參數
- options
- BlobUndeleteOptions
Blob 取消刪除作業的選擇性選項。
傳回
Promise<BlobUndeleteResponse>
withVersion(string)
建立指向此 Blob 版本的新 BlobClient 物件。 提供 「“ 會移除 versionId,並將用戶端傳回基底 Blob。
function withVersion(versionId: string): BlobClient
參數
- versionId
-
string
versionId。
傳回
指向此 Blob 版本的新 BlobClient 物件。