[英]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.