Я пытаюсь хранить большие двоичные объекты в более чем одном контейнере в Azure хранилище больших двоичных объектов, но я хотел бы создать страницу, которая может просматривать большие двоичные объекты без необходимости знать о том, что это Azure за кулисами. так что это облачное хранилище agnosti c.
Для доступа к BLOB-объекту в azure необходимо указать имя BLOB-объекта и контейнера, а также строку подключения.
В настоящее время я Я использую внедрение зависимостей для создания экземпляра IDocumentService
в моем AzureBlobService
, и он принимает строку подключения и имя контейнера (оба в файле конфигурации) при создании. Так, например, если я храню musi c, у меня будет указанная страница c, которая загружает файлы, для инъекции с помощью AzureBlobService, который предварительно настроен для использования контейнера musi c.
Проблема, с которой я столкнулся, заключается в том, что я хотел бы иметь одну веб-страницу, которая может просматривать любой конкретный BLOB-объект, не зная, что это Azure (то есть просто с помощью IDocumentService
), но я не думаю, что Я могу сделать это без того, чтобы имя контейнера было известно вне внедрения зависимостей.
Должен ли я просто отказаться от попыток быть агенством облачного хранилища c и передать имя контейнера? Должен ли я использовать один контейнер для всего моего приложения и использовать вместо него только префиксы виртуальных каталогов? Должен ли я хранить имя контейнера в БД вместе с именем BLOB-объекта (в этом случае таблица не будет агентироваться в облачном хранилище c ...). А что, если я хочу иметь разные строки подключения (разные учетные записи хранения) для разных частей приложения? Должен ли я хранить больше информации о блобе в БД, кроме имени? Мне сказали, что контейнер должен быть в конфигурационном файле.
Кроме этого, мое текущее решение состоит в том, чтобы иметь отдельные страницы для каждого контейнера, и конструктор для страницы принимает правильно созданный экземпляр IDocumentService
, используя правильный контейнер.
У меня была идея, что я Не особенно нравится передавать какой-то тип на страницу в строке запроса, а затем, основываясь на этом, использовать внедрение свойства или метода для внедрения правильно сконфигурированной службы do c. Тем не менее, все же не элегантно.
Любые советы или предложения приветствуются!