gpt4 book ai didi

azure-blob-storage - 带有静态服务的 Azure 应用服务或存储服务如何上传?

转载 作者:行者123 更新时间:2023-12-03 16:48:54 34 4
gpt4 key购买 nike

我正在寻找有关如何使用 Blob 存储或应用服务静态 Web 功能(在 BUILD 中宣布)来托管二进制文件上传的任何示例,该文件上传将进入服务所在的存储帐户。

谢谢。

最佳答案

我将引导您完成一个 Node.js 示例,您可以上传、下载 Blob 等等...

了解 Azure Blob 存储

第一步是了解 Blob 存储提供三种类型的资源:

  • 存储帐户
  • 存储帐户中的容器
  • 容器中的 Blob

  • 下图显示了这些资源之间的关系。

    enter image description here

    先决条件
  • 具有事件订阅的 Azure 帐户。 Create an account for free .
  • Azure 存储帐户。 Create a storage account .
  • Node.js .

  • 设置

    让我们准备一个项目以使用适用于 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"
    }
    }
  • 安装包依赖 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));

    从 Azure 门户复制您的凭据

    你的应用必须获得授权才能向 Azure 存储发出请求。我们应该将您的存储帐户凭据作为连接字符串添加到应用程序:
  • 登录 Azure portal .
  • 找到您的存储帐户。
  • 在设置部分,选择访问键。在那里,您可以查看您的帐户访问 key 和每个 key 的完整连接字符串。
  • 复制 key1 下的连接字符串值并保留它。

  • enter image description here

    连接字符串
  • 将此添加到 main 中功能。文件“blob-quickstart-v12.js”:

  • const AZURE_STORAGE_CONNECTION_STRING = '<paste-your-connection-string-here>';

    创建容器

    让我们创建一个新容器。下面的代码将 UUID 值附加到容器名称以确保它是唯一的。

    IMPORTANT: Container names must be lowercase!!!



    将此代码添加到 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);

    将 blob 上传到容器

    以下代码片段从创建的容器部分将字符串上传到 blob。

    将此代码添加到主函数的末尾:

    // 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);

    下载 blob

    通过调用下载方法下载之前创建的 blob。示例代码包括一个名为 streamToString 的辅助函数。 ,用于将 Node.js 可读流读入字符串。

    将此代码添加到主函数的末尾:

    // 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));

    在主函数之后添加这个辅助函数:

    // 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);
    });
    }

    运行代码

    从控制台提示中,导航到包含“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!

    引用文献: Microsoft

    关于azure-blob-storage - 带有静态服务的 Azure 应用服务或存储服务如何上传?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61937571/

    34 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com