Sno*_*owy 5 azure-storage-blobs azure-web-app-service
我正在寻找有关如何使用 Blob 存储或应用服务静态 Web 功能(在 BUILD 中宣布)来托管二进制文件上传的任何示例,该上传将进入服务所在的存储帐户。
谢谢。
我将引导您完成一个 Node.js 示例,您可以上传、下载 blob 等...
了解 Azure Blob 存储
第一步是了解 Blob 存储提供三种类型的资源:
下图显示了这些资源之间的关系。
先决条件
配置
让我们准备一个项目来使用适用于 JavaScript 的 Azure Blob 存储客户端库 v12。
为项目创建一个新目录。例如:
创建项目文件夹mkdir blob-quickstart-v12
进入创建的文件夹cd blob-quickstart-v12
运行npm init以创建“package.json”文件并确保它如下所示:
{
"name": "blob-quickstart-v12",
"version": "1.0.0",
"description": "Use the @azure/storage-blob SDK version 12 to interact with Azure Blob storage",
"main": "blob-quickstart-v12.js",
"scripts": {
"start": "node blob-quickstart-v12.js"
},
"author": "Your Name",
"license": "MIT",
"dependencies": {
"@azure/storage-blob": "^12.0.0",
"@types/dotenv": "^4.0.3",
"dotenv": "^6.0.0"
}
}
Run Code Online (Sandbox Code Playgroud)
安装包依赖项npm install
创建一个名为“blob-quickstart-v12.js”的新文件并复制/粘贴以下代码:
const { BlobServiceClient } = require('@azure/storage-blob');
const uuidv1 = require('uuid/v1');
async function main() {
console.log('azure blob storage v12 - javaScript quickstart sample');
// Quick start code goes here
}
main().then(() => console.log('Done')).catch((ex) => console.log(ex.message));
Run Code Online (Sandbox Code Playgroud)
从 Azure 门户复制你的凭据
您的应用程序必须获得授权才能向 Azure 存储发出请求。我们应该将您的存储帐户凭据作为连接字符串添加到应用程序中:
登录Azure 门户。
找到您的存储帐户。
在“设置”部分中,选择访问键。在那里,您可以查看您的帐户访问密钥以及每个密钥的完整连接字符串。
复制 key1 下的连接字符串值并保留它。
连接字符串
main函数中。文件“blob-quickstart-v12.js”:const AZURE_STORAGE_CONNECTION_STRING = '<paste-your-connection-string-here>';
Run Code Online (Sandbox Code Playgroud)
创建一个容器
让我们创建一个新容器。下面的代码将 UUID 值附加到容器名称以确保它是唯一的。
重要提示:容器名称必须小写!
将此代码添加到函数末尾main:
// Create the BlobServiceClient object which will be used to create a container client
const blobServiceClient = await BlobServiceClient.fromConnectionString(AZURE_STORAGE_CONNECTION_STRING);
// Create a unique name for the container
const containerName = 'mycontainer' + uuidv1();
console.log('creating container: ', containerName);
// Get a reference to a container
const containerClient = await blobServiceClient.getContainerClient(containerName);
// Create the container
const createContainerResponse = await containerClient.create();
console.log("container was created successfully. requestId: ", createContainerResponse.requestId);
Run Code Online (Sandbox Code Playgroud)
将 blob 上传到容器
以下代码片段将字符串从创建的容器部分上传到 blob。
将此代码添加到 main 函数的末尾:
// Create a unique name for the blob
const blobName = 'myfile' + uuidv1() + '.txt';
// Get a block blob client
const blockBlobClient = containerClient.getBlockBlobClient(blobName);
console.log('uploading to azure storage as blob: ', blobName);
// Upload data to the blob
const data = 'Hello, World!';
const uploadBlobResponse = await blockBlobClient.upload(data, data.length);
console.log("blob was uploaded successfully. requestId: ", uploadBlobResponse.requestId);
Run Code Online (Sandbox Code Playgroud)
下载 blob
通过调用 download 方法下载之前创建的 blob。示例代码包含一个名为 的辅助函数streamToString,用于将 Node.js 可读流读入字符串。
将此代码添加到 main 函数的末尾:
// Get blob content from position 0 to the end
// In Node.js, get downloaded data by accessing downloadBlockBlobResponse.readableStreamBody
// In browsers, get downloaded data by accessing downloadBlockBlobResponse.blobBody
const downloadBlockBlobResponse = await blockBlobClient.download(0);
console.log('downloaded blob content...');
console.log(await streamToString(downloadBlockBlobResponse.readableStreamBody));
Run Code Online (Sandbox Code Playgroud)
在主函数之后添加此辅助函数:
// A helper function used to read a Node.js readable stream into a string
async function streamToString(readableStream) {
return new Promise((resolve, reject) => {
const chunks = [];
readableStream.on("data", (data) => {
chunks.push(data.toString());
});
readableStream.on("end", () => {
resolve(chunks.join(""));
});
readableStream.on("error", reject);
});
}
Run Code Online (Sandbox Code Playgroud)
运行代码
从控制台提示符中,导航到包含“blob-quickstart-v12.js”文件的根目录,然后执行:
node blob-quickstart-v12.js
应用程序的输出类似于以下示例:
azure blob storage v12 - javaScript quickstart sample
creating container: mycontainer-4a0780c0-fb72-11e9-b7b9-b387d3c488da
uploading to azure storage as blob: myfileb4a3128d0-fb72-11e9-b7b9-b387d3c488da.txt
downloaded blob content: Hello, World!
Run Code Online (Sandbox Code Playgroud)
参考资料:微软
| 归档时间: |
|
| 查看次数: |
562 次 |
| 最近记录: |