簡體   English   中英

Azure Blob 存儲默認壓縮文件?

[英]Azure Blob Storage Compressing files by default?

我正在使用 Azure Blob 存儲 API 的功能將 JSON 上傳到 Azure Blob 存儲:

    const response = await blobClient.upload(content, content.length);

代碼中絕對沒有壓縮邏輯,也沒有添加任何編碼頭,但文件在到達存儲空間時似乎只有原始大小的 60% 左右。 此外,使用 fiddler 監控 PUT 請求似乎文件被壓縮,然后由 API 上傳。

我的問題是,Azure 是否默認進行壓縮?

編輯:我正在字符串化然后上傳 json 對象。 他們去除了所有的空白,從而減小了尺寸。

根據我的測試,沒有壓縮問題。 這是我的示例:

const { BlobServiceClient } = require("@azure/storage-blob");
var fs = require('fs');

async function main() {
    const AZURE_STORAGE_CONNECTION_STRING = "Your_Stroage_Account_Connection_String";
    const blobServiceClient = BlobServiceClient.fromConnectionString(AZURE_STORAGE_CONNECTION_STRING);

    const containerName = 'demo';
    const blobName = 'test.txt';

    const containerClient = blobServiceClient.getContainerClient(containerName);
    if(!await containerClient.exists()){
        await containerClient.create();
    }
    const contents = fs.readFileSync('test.txt');
    const blockBlobClient = containerClient.getBlockBlobClient(blobName);
    await blockBlobClient.upload(contents,contents.length);

}

main().then(() => console.log('Done')).catch((ex) => console.log(ex.message));

test.txt文件的大小約為 99.9KB。

在此處輸入圖片說明

並且,從門戶來看,上傳的文件大小為99.96KB,符合我們的預期。

在此處輸入圖片說明

您還應該在上傳時使用字節長度,因為存儲 blob api 需要字節數,字符串長度可以不同

  const content = "Hello 世界!";
  console.log(`length: ${content.length}`);
  console.log(`byteLength: ${Buffer.byteLength(content)}`);

輸出:

length: 9
byteLength: 15

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM