Возврат потока BLOB-объектов Azure непосредственно из службы WCF

Я хочу вернуть поток из хранилища BLOB-объектов Azure напрямую в браузер через WCF. В основном у меня есть служба REST WCF, и я хочу, чтобы пользователи загружали файлы через службу, пока файлы хранятся в хранилище BLOB-объектов Azure.

В этом вопросе

Возвращение Azure Большой двоичный объект из службы WCF как поток - нужно ли его закрывать?

он делает то, что мне нравится, но сначала загружает весь файл в новый поток, есть ли способ предоставить поток больших двоичных объектов в качестве потока возврата из WCF, чтобы WCF действовал больше как прокси для потока?

Моя проблема связана с большими файлами (> 10 МБ), я действительно не хочу загружать весь поток из хранилища Azure, прежде чем я смогу начать возвращать его пользователю.

Причина, по которой я делаю это таким образом, заключается в том, что я провожу некоторые проверки безопасности своего пользователя, прежде чем разрешу доступ к файлу, который хранится в хранилище BLOB-объектов Azure, а также некоторые файлы могут иметь размер до 1 ГБ.


person Jason Lavigne    schedule 26.11.2011    source источник


Ответы (1)


Я сделал нечто подобное, где WCF использовался для авторизации клиента (и проверки того, что большой двоичный объект все еще существует, и так далее). Если все было в порядке, служба WCF вернула URL-адрес с подписью общего доступа - это позволило клиенту получить доступ к потоку непосредственно из хранилища. Сохранение транзакционных затрат на перетаскивание большого двоичного объекта в роль wcf и последующую потоковую передачу оттуда.

Может ли это сработать для вас?

person Neil Thompson    schedule 26.11.2011
comment
Да, после еще нескольких поисков я пришел к такому же выводу, это гораздо более элегантное решение, чем создание прокси. Спасибо за подтверждение. - person Jason Lavigne; 26.11.2011