2012-03-10 1 views
2

Мы разрабатываем веб-приложение с Azure, и вопрос заключается в том, как эффективно загружать большие изображения в BLOB прямо из браузера и сделать его надежным и надежным?Azure BLOB upload - как это сделать наилучшим образом?

Возможно, мы испытываем плохую производительность, потому что мы из России и в настоящее время используем пробную версию Azure. Может быть, с полной подпиской эта проблема исчезнет?

Во всяком случае, мое дело в том, что наше приложение должно пройти наше изображение по следующему пути:

WebBrowser > (image.jpg) > Azure WebRole [store name in DB] > (image.jpg) > Azure BLOB 

Так есть накладные расходы с участием WebRole. То, что я хотел бы сделать, это загрузить мой большой файл BLOB непосредственно и отправить имя изображения в WebRole параллельно:

WebBrowser > (image.jpg) > Azure BLOB 
WebBrowser > WebRole [store name in DB] 

Проблема здесь является безопасность. Я говорю о загрузке пользовательских фотографий и не хочу, чтобы хакеры могли писать в свой контейнер.

Действительно ли это разумно?

+0

Я предполагаю, что мое местоположение не должно влиять на производительность, потому что WebRole и BLOB должны работать нормально друг с другом, я думаю. –

+1

Для хорошего образца вы можете проверить http://blobshare.codeplex.com/, у него есть многопользовательский файловый загрузчик silverlight и обычная загрузка файлов. Он также имеет настраиваемые разрешения. –

ответ

4

Silverlight - это опция, использующая сигнатуры общего доступа (специальные URL-адреса, которые допускают доступ на запись по времени). Смотрите мою серию сообщений в блоге: http://blog.smarx.com/posts/uploading-windows-azure-blobs-from-silverlight-part-1-shared-access-signatures

+0

Ну, это хорошая альтернатива. В настоящее время я с нетерпением жду использования этого решения. Спасибо –

1

+1 для предложения @ smarx о загрузке через общую подпись доступа - это URL с ограниченным сроком действия, который позволяет вам получить доступ к закрытому блобу, как если бы он был общедоступным. Кто-то должен будет запустить сетевой сниффер, чтобы попытаться обнаружить URL, закодированный в SAS, и даже тогда он будет действовать только в течение короткого периода времени.

Просто хотел добавить, что наличие пробной подписки ничем не отличается от платной подписки, когда дело доходит до производительности. Это всего лишь биллинг и не имеет ничего общего с распределением ресурсов.

+0

Спасибо за ответ. Я также думал, что пробная подписка не должна влиять на производительность, но это так. Не напрямую, а путем ограничения областей, где мои размещенные сервисы могут быть развернуты. Я из России, Санкт-Петербурга и могу работать только в Азии и Юго-Восточной Азии. Не в Европе, которая ближе ко мне. Вероятно, это является причиной длительного запроса/ответа. –