#c# #azure #azure-storage #azure-blob-storage
#c# #azure #azure-хранилище #azure-blob-хранилище
Вопрос:
Я столкнулся с проблемой при загрузке azure blob-файла со старым загружаемым файлом.Вот шаги.
Во время загрузки.. используется следующий код.
BlobClient blobClient = containerClient.GetBlobClient(fileNamePrefix);
if (blobClient.Exists())
{
await blobClient.DeleteIfExistsAsync(DeleteSnapshotsOption.IncludeSnapshots);
await blobClient.UploadAsync(stream, true);
}
Хотя описанный выше процесс работает хорошо, и в хранилище больших двоичных объектов я вижу обновленный файл, если тот же большой двоичный объект уже существовал.
После того, как это будет сделано, если я выполню операцию загрузки.
BlobClient blobClient = containerClient.GetBlobClient(blobName);
await blobClient.DownloadToAsync(mstream);
Я все еще вижу старый файл. Таким образом, несмотря на то, что в хранилище существует новый файл, операция выдает мне старый файл.
Непонятно, почему это происходит, но любая идея была бы полезна.
Спасибо.
Комментарии:
1. Вы должны использовать BlobClient для удаления моментального снимка. ожидание blobClient. DeleteIfExistsAsync(удаляет параметр snapshotsoption. Включает в себя SNAPSHOTS, null, по умолчанию);
2. Спасибо! он работает идеально
3. я думал, что это сработало. но это не так, часть загрузки по-прежнему загружает более старую version.in хранение файл выглядит перезаписанным идеально.
4. @MandarJogalekar какую версию пакета больших двоичных объектов вы используете? и насколько велик файл большого двоичного объекта? и вам лучше предоставить пример кода, который можно использовать для создания проблемы, я думаю, что в вашем коде может быть небольшая ошибка.
5. я использую azure.storage.blobs 12.7.0. большой двоичный объект, который я тестирую, имеет очень маленький размер 5-10 Кб. . Я уже привел код выше в вопросе
Ответ №1:
Помещая его здесь, чтобы кто-нибудь еще столкнулся с проблемой. Поможет им.
Вы должны использовать BlobClient для удаления моментального снимка. ожидание blobClient.DeleteIfExistsAsync(удаляет параметр snapshotsoption.Включает в себя SNAPSHOTS, null, по умолчанию);
Пожалуйста, отметьте это как ответ для других 🙂