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