У меня есть файлы, которые сохраняются в хранилище Azure Blob, и у меня есть база данных, которая хранит URI этих файлов. Есть ли стандартный способ их синхронизации? Я имею в виду, что не должно быть способа удалить файл без удаления записи в базе данных и наоборот.Как синхронизировать Azure SQL с Azure BLOB Storage?
ответ
Существует не из коробки способ сделать это, поэтому вам нужно написать свой собственный. Я нашел этот пример монитора файлов полезным: http://ben.onfabrik.com/posts/monitoring-files-in-azure-blob-storage
Нет инструмента, который может обеспечить ссылочную целостность между записями базы данных и хранилищем Azure Blob.
В качестве альтернативы вы можете иметь рабочую роль, которая будет поддерживать синхронизацию файлов с базой данных (но у вас будет дезактивация здесь).
Другим разумно чистым подходом будет только одна точка входа для добавления/удаления файлов blob и обработки синхронизации с базой данных в этом месте.
Я согласен с scripni, вы также можете голосовать до следующие спросить:
Если хранилище больших двоичных объектов были события, вы могли бы знать, когда один вставлен, а затем обновить базу данных. Вы могли бы также иметь рабочую роль или просто задание cron на том основании, что запросы blob-хранилища так часто и соответственно обновляют SQL.
Одним из способов реализации транзакций на платформе Azure является использование очередей. Поместите сообщение в очередь и удалите сообщение только после его успешной обработки.
Таким образом, если какая-либо операция не удалась, вы можете попытаться исправить ситуацию, когда следующий раз будет видно сообщение.
Мое решение имеет одну точку входа, такую как scripni, и добавляет к ней транзакцию, подобную подходу.
Я использую базу данных как журнал записи для всей транзакции.
1) отметьте записи базы данных как «shouldBeDeleted» = true.
2) попробуйте удалить капли.
3) если есть ошибка, и капли не удаляются, у вас все еще есть записи, и вы знаете, что капли, на которые они указывают, должны быть удалены. и вы можете попытаться удалить их позже, что более важно, вы можете игнорировать записи в запросах на чтение так же, как если бы вы использовали метод мягкого удаления.
4) если удаленные блокировки удалены, вы можете удалить записи.
5) если это не удается, записи по-прежнему отмечены как «shouldBeDeleted», позволяя вам игнорировать их и очищать их позже.
Для меня главным преимуществом является то, что мне не нужно создавать рабочего только для этой цели, а также то, что изменение является мгновенным, в отличие от цикла синхронизации, оставляющего окно, когда записи не синхронизируются ,
Вы можете реализовать ту же идею для вставки/обновления практически так же.
* Немного поздно, но я считаю, что проблема все еще актуальна и что другие столкнулись с ней.
Это очень близко к тому, что я сделал. –
- 1. Azure blob storage - blob policy
- 2. Azure - Blob Storage
- 3. Appassure & Azure Blob storage
- 4. Azure Storage Blob Rename
- 5. Azure blob storage SAS
- 6. azure machine learning-Azure Blob Storage
- 7. Azure DocumentDB и Azure Blob Storage
- 8. Azure Mobile Services Blob Storage
- 9. Azure Storage: Blob против Таблицы
- 10. azure blob storage node.js backend
- 11. Azure Storage Copy From Blob
- 12. Получить последний blob в azure blob storage
- 13. Azure storage Blob -com.microsoft.azure.storage.core.Utility error
- 14. Azure Blob Storage Listing Blobs
- 15. Azure storage blob загрузить с url
- 16. Добавить полнотекстовый поиск с использованием Azure Search, Azure SQL, Azure Blob Storage
- 17. azure premium storage страница blob/30 стоимость
- 18. Как реализовано Azure Storage?
- 19. Microsoft Azure Storage vs. Azure SQL Database
- 20. Azure Storage Blob ошибка Put SSL рукопожатия
- 21. Принудительное подключение HTTPS к Azure Blob Storage
- 22. Azure Storage Parse Blob в таблицу
- 23. TeamCity и Windows Azure Blob Storage
- 24. C# Azure Storage Blob Загрузить TransactionScope
- 25. Проверка наличия blob в Azure Storage
- 26. Почему редко используется Azure blob storage slow?
- 27. Загрузка в Azure blob storage Cordova Camera
- 28. Azure Blob vs File vs Disk storage
- 29. Загрузите все blob в контейнере Azure Storage
- 30. Azure Blob Storage для Apache Cordova App
Создайте рабочую роль и выполните все операции с файлами и db в пределах одной транзакции. http://msdn.microsoft.com/en-us/library/system.transactions.transactionscope.aspx – Lloyd
спасибо! я думаю, что будет работать –
У меня была аналогичная проблема, и именно так мы ее решили, сначала удалим запись базы данных, а затем файл, если файл не удалит, а затем откат транзакции базы данных. Будьте осторожны с открытыми связями между службами – Lloyd