最新消息: 电脑我帮您提供丰富的电脑知识,编程学习,软件下载,win7系统下载。

Azure的斑点如何继续之前的团块创建等待?

IT培训 admin 6浏览 0评论

Azure的斑点如何继续之前的团块创建等待?

我使用的NodeJS和Azure存储SDK,我有,我上传到我的blob文件被创建为0KB文件,除非我想补充的中介功能,延缓它,以便上载发生之前创建的BLOB的问题。作为流或从Azure的存储SDK中的本地文件上传时,我得到了相同的结果。

我有以下功能:

async function uploadToBlob(localFilePath) {


        //ACTIVATE CREDENTIALS AND CONTAINER
    const credentials = new SharedKeyCredential(STORAGE_ACCOUNT_NAME, ACCOUNT_ACCESS_KEY);
    const pipeline = StorageURL.newPipeline(credentials);
    const serviceURL = new ServiceURL(`https://${STORAGE_ACCOUNT_NAME}.blob.core.windows`, pipeline);
    const containerURL = ContainerURL.fromServiceURL(serviceURL, containerName);  
    const aborter = Aborter.timeout(30 * ONE_MINUTE);

    //UPLOAD IMAGE
    var blobName = localFilePath.substring(localFilePath.lastIndexOf('/') + 1 );
    var fullBlobName = category + "/" + subcategory + "/" + blobName;
    var blobURL = await BlockBlobURL.fromContainerURL(containerURL, fullBlobName);

    await uploadImage(aborter, containerURL, localFilePath, blobURL)


}

在那里我做对BlockBlobURL.from ContainerURL一个的await,正如你可以看到得到的blob URL VAR上有一个的await并且也有在电话会议中uploadImage的AWAIT。

那么这里是调用的函数,并调用从蔚蓝的SDK中的uploadFileToBlockBlob:

//UPLOAD IMAGE NO-STREAM
async function uploadImage(aborter, containerURL, filePath, blobURL, blobName) {
    try {
        filePath = path.resolve(filePath);

         //THIS LINE MAKES IT WORK
        await showBlobNames(aborter, containerURL);

        addToDB(blobName, blobURL.url);


        console.log("Calling uploadFileToBlockBlob with filePath: " + filePath + 
                    " and blobURL: "+ blobURL.url)
        return await uploadFileToBlockBlob(aborter, filePath, blobURL);
    }
    catch(err) {
        console.log(err)
    }
}

在这最后的功能,我添加

await showBlobNames(aborter, containerURL);

并且使工作。

似乎以前一样,创建之前,BLOB和影像正在用正确的姓名和进一滴但0KB上传的文件,并添加此功能延缓它,这样的斑点可以创建文件已被上传。

我不明白,为什么以前的等待着不要让上传等到创建团块。我也试图把上传调用回调函数内,但这样可以创建BLOB时,它会被执行,但似乎没有得到支持(犯规调用回调函数)

我有它的工作将调用showBlobNames,但我觉得我的代码不应该有依靠这一点,我想了解为什么的await的ARENT工作。

谢谢

回答如下:

下面是我在写的连接和执行CRUD操作

    await containerURL.create(aborter);
    console.log(`Container: "${containerName}" is created`);

    await blockBlobURL.upload(aborter, content, content.length);
    console.log(`Blob "${blobName}" is uploaded`);
    
    await uploadLocalFile(aborter, containerURL, localFilePath);
    console.log(`Local file "${localFilePath}" is uploaded`);

    await uploadStream(aborter, containerURL, localFilePath);
    console.log(`Local file "${localFilePath}" is uploaded as a stream`);

    console.log(`Blobs in "${containerName}" container:`);
    await showBlobNames(aborter, containerURL);

Azure的斑点如何继续之前的团块创建等待?

我使用的NodeJS和Azure存储SDK,我有,我上传到我的blob文件被创建为0KB文件,除非我想补充的中介功能,延缓它,以便上载发生之前创建的BLOB的问题。作为流或从Azure的存储SDK中的本地文件上传时,我得到了相同的结果。

我有以下功能:

async function uploadToBlob(localFilePath) {


        //ACTIVATE CREDENTIALS AND CONTAINER
    const credentials = new SharedKeyCredential(STORAGE_ACCOUNT_NAME, ACCOUNT_ACCESS_KEY);
    const pipeline = StorageURL.newPipeline(credentials);
    const serviceURL = new ServiceURL(`https://${STORAGE_ACCOUNT_NAME}.blob.core.windows`, pipeline);
    const containerURL = ContainerURL.fromServiceURL(serviceURL, containerName);  
    const aborter = Aborter.timeout(30 * ONE_MINUTE);

    //UPLOAD IMAGE
    var blobName = localFilePath.substring(localFilePath.lastIndexOf('/') + 1 );
    var fullBlobName = category + "/" + subcategory + "/" + blobName;
    var blobURL = await BlockBlobURL.fromContainerURL(containerURL, fullBlobName);

    await uploadImage(aborter, containerURL, localFilePath, blobURL)


}

在那里我做对BlockBlobURL.from ContainerURL一个的await,正如你可以看到得到的blob URL VAR上有一个的await并且也有在电话会议中uploadImage的AWAIT。

那么这里是调用的函数,并调用从蔚蓝的SDK中的uploadFileToBlockBlob:

//UPLOAD IMAGE NO-STREAM
async function uploadImage(aborter, containerURL, filePath, blobURL, blobName) {
    try {
        filePath = path.resolve(filePath);

         //THIS LINE MAKES IT WORK
        await showBlobNames(aborter, containerURL);

        addToDB(blobName, blobURL.url);


        console.log("Calling uploadFileToBlockBlob with filePath: " + filePath + 
                    " and blobURL: "+ blobURL.url)
        return await uploadFileToBlockBlob(aborter, filePath, blobURL);
    }
    catch(err) {
        console.log(err)
    }
}

在这最后的功能,我添加

await showBlobNames(aborter, containerURL);

并且使工作。

似乎以前一样,创建之前,BLOB和影像正在用正确的姓名和进一滴但0KB上传的文件,并添加此功能延缓它,这样的斑点可以创建文件已被上传。

我不明白,为什么以前的等待着不要让上传等到创建团块。我也试图把上传调用回调函数内,但这样可以创建BLOB时,它会被执行,但似乎没有得到支持(犯规调用回调函数)

我有它的工作将调用showBlobNames,但我觉得我的代码不应该有依靠这一点,我想了解为什么的await的ARENT工作。

谢谢

回答如下:

下面是我在写的连接和执行CRUD操作

    await containerURL.create(aborter);
    console.log(`Container: "${containerName}" is created`);

    await blockBlobURL.upload(aborter, content, content.length);
    console.log(`Blob "${blobName}" is uploaded`);
    
    await uploadLocalFile(aborter, containerURL, localFilePath);
    console.log(`Local file "${localFilePath}" is uploaded`);

    await uploadStream(aborter, containerURL, localFilePath);
    console.log(`Local file "${localFilePath}" is uploaded as a stream`);

    console.log(`Blobs in "${containerName}" container:`);
    await showBlobNames(aborter, containerURL);
发布评论

评论列表 (0)

  1. 暂无评论