Я пытаюсь использовать хранилище больших двоичных объектов Azure для хранения больших двоичных объектов, но большую часть времени я получаю ответы "запрос был прерван" из хранилища больших двоичных объектов.Я использую Node.js v10 SDK в Express API, и у меня возникает ощущение, что это связано с тем, как я настраиваю службу.
Я использую Azurite для имитации хранилища Azure.оказание услуг.
В моем app.js я запускаю свою функцию configureBlobStore()
при запуске:
export const configureBlobStore = async containerName => {
const sharedKeyCredential = new SharedKeyCredential(
process.env.AZURE_STORAGE_ACCOUNT_NAME,
process.env.AZURE_STORAGE_ACCOUNT_ACCESS_KEY,
);
const pipeline = StorageURL.newPipeline(sharedKeyCredential);
serviceUrl = new ServiceURL('http://blob:10000/devstoreaccount1', pipeline);
if (!containerUrl) {
containerUrl = ContainerURL.fromServiceURL(serviceUrl, containerName);
try {
await containerUrl.create(aborter);
} catch (err) {
console.log(err);
console.log('Container already existed, skipping creation');
}
}
return containerUrl;
};
и затем, чтобы сохранить капли, я запускаю свою функцию saveToBlobStore()
let { originalname: blobName } = file;
const blockBlobUrl = BlockBlobURL.fromContainerURL(containerUrl, blobName);
const uploadOptions = { bufferSize: 4 * 1024 * 1024, maxBuffers: 20 };
const stream = intoStream(file.buffer);
try {
await uploadStreamToBlockBlob(
aborter,
stream,
blockBlobUrl,
uploadOptions.bufferSize,
uploadOptions.maxBuffers,
);
return blockBlobUrl.url;
} catch (err) {
console.error('Error saving blob', err);
return err;
}
};
Иногда это работает, часто когда я снимаю свои контейнеры и выполняю сокращение объема, но обычно это работает только для первого загруженного файла, а не для каких-либо других.Кто-нибудь знает, почему это может происходить?