如何借助“ azure-storage”包在Azure Data Lake Storage Gen2中的容器内创建文件夹

我正在使用Azure Data Lake Gen2作为存储。在将文件上传到相关文件夹之前,我需要创建其他文件夹结构。

我正在使用“ Azure-Storage” JavaScript库。但是我无法弄清楚如何通过该库在容器内创建文件夹。

下面是连接到容器的代码。我可以连接到容器并将文件上传到容器本身。

var azure = require('azure-storage'); //connecting to container
var blobService = azure.createBlobService("DefaultEndpointsProtocol=<>;EndpointSuffix=core.windows.net");
blobService.createContainerIfNotExists("pbitestdl2",{publicaccessLevel: 'blob'},(error,result,response) => {
    if (!error) {
        console.log('connected');
    }
});

如何借助“ azure-storage”包在Azure Data Lake Storage Gen2中的容器内创建文件夹

sheng13love 回答:如何借助“ azure-storage”包在Azure Data Lake Storage Gen2中的容器内创建文件夹

您可能已经知道,ADLS Gen2的官方SDK现在不可用。

由于您正在为ADLS Gen2使用blob存储sdk,因此您应该了解以下几点:

在天蓝色的Blob存储中,您需要了解一件事:Blob存储中没有“文件夹”,“文件夹”实际上是Blob名称的一部分。您无法在Blob存储中创建一个空文件夹。

在使用用于ADLS Gen2的blob存储SDK时,不能直接创建文件夹,而应创建一个其名称包括文件夹名称的blob文件,例如myfolder/my.txt

因此,在将blob存储SDK用于ADLS Gen2时,应使用以下代码:

var azure = require('azure-storage'); //connecting to container
var blobService = azure.createBlobService("DefaultEndpointsProtocol=xxx;EndpointSuffix=core.windows.net");
blobService.createContainerIfNotExists("pbitestdl2",{publicAccessLevel: 'blob'},(error,result,response) => {
    if (!error) {
        console.log('connected');
    }
});

blobService.createBlockBlobFromLocalFile('pbitestdl2','myfolder/my.txt','f:\\testfile.txt',function(error,response) {
    if (!error) {
      // file uploaded
      console.log('ok,uploaded');
    }
  });

然后您会看到该文件夹​​是在Azure Data Lake Gen2存储中创建的,截图如下:

enter image description here

另一种方法,您可以使用ADLS Gen2 Path - Create rest api直接创建一个文件夹,但是您需要做很多工作来为其余api构建身份验证令牌。 / p>

本文链接:https://www.f2er.com/3109509.html

大家都在问