【问题标题】:Azure blob storage, How do I change the name of the file being downloaded?Azure blob 存储,如何更改正在下载的文件的名称?
【发布时间】:2021-10-19 08:34:14
【问题描述】:

我有一个应用程序,用于通过节点 js 从 Azure blob 下载文件,我想在下载时更改文件的名称。例如,如果文件名是XYZ_ABC.txt,我希望下载后的文件名是ABC.txt

const { DefaultAzureCredential } = require("@azure/identity");
const { BlobServiceClient } = require("@azure/storage-blob");

const account = "<account>";
const defaultAzureCredential = new DefaultAzureCredential();

const blobServiceClient = new BlobServiceClient(
  `https://${account}.blob.core.windows.net`,
  defaultAzureCredential
);

const containerName = "<container name>";
const blobName = "<blob name>";

async function main() {
  const containerClient = blobServiceClient.getContainerClient(containerName);
  const blobClient = containerClient.getBlobClient(blobName);

  
  return await blobClient.download().then(response=>{   

            return {message:"File Downloaded)", data:response, responseCode:200};

        }).catch(err=>{
            console.log(`download  failed`, err);
            return {message:"download failed", data:err, responseCode:400};
        });  
}catch(ex){

    return {message:"Failed to Download", data:ex, responseCode:400};
}     
main();

上面是代码。如何更改正在下载的文件的名称?

【问题讨论】:

  • 请编辑您的问题并包含您编写的代码。
  • 我包含了代码...你能检查一下吗
  • 您在代码中的哪个位置返回文件/数据?
  • @GauravMantri 我的错...现在编辑它
  • 谢谢。您的代码是 Web 应用程序的一部分还是只是在控制台中运行?正如我所看到的,您只是返回一个包含 blob 数据的对象。

标签: azure blob


【解决方案1】:

下载 Blob 数据后,您需要从本地数据调用浏览器下载过程。一种选择是使用像Filesaver.js 这样的库,它允许将下载文件名设置为参数:

var FileSaver = require('file-saver');
var blob = new Blob(["Hello, world!"], {type: "text/plain;charset=utf-8"});
FileSaver.saveAs(blob, "hello world.txt");

【讨论】:

  • 谢谢诺亚..会尝试
猜你喜欢
  • 2018-04-25
  • 1970-01-01
  • 1970-01-01
  • 2021-12-08
  • 2016-10-10
  • 2018-09-24
  • 2019-11-05
相关资源
最近更新 更多