Установка BLOB-объекта Azure - изображение повреждено

Я пытаюсь использовать голубой двоичный объект хранилища, чтобы поместить на него элемент. Он отлично работает с PDF, MP3, но когда я загружаю файл IMAGE (или файл TXT), файл изменился.

Когда я скачиваю pdf или mp3, файл становится читаемым. Но для изображения написано, что оно повреждено ... Однако файл TXT доступен для чтения, но содержимое окружено webkitfromboundary

Думаю, это причина того, что изображение не работает ...

Пример:

TXT-файл только с hello word ->

------WebKitFormBoundary3rxc8zHbnz4expeP
Content-Disposition: form-data; name="file"; filename="test.txt"
Content-Type: text/plain

hello word
------WebKitFormBoundary3rxc8zHbnz4expeP--

Думаю, это причина того, что изображения не работают.


так что это моя загрузка (из angularJS) --- Я использую https://github.com/danialfarid/ng-file-upload

Upload.upload
  url: url
  method: 'PUT'
  headers: head
  file: file
  .success (data, status, headers, config) ->
    console.log("SUCCES!!!")

значение head - (для текстового файла)

{"x-ms-version":"2014-02-14","x-ms-blob-type":"BlockBlob","x-ms-date":"2015-11-06 10:02:24 GMT","Authorization":"SharedKey generate_key","Content-Type":"text/plain"}

конечно, изменение типа содержимого, когда это изображение (требуется file.type)


Если это может помочь, это заголовки запросов со страницы сети ->

Accept:application/json, text/plain, */*
Accept-Encoding:gzip, deflate, sdch
Accept-Language:fr,en-US;q=0.8,en;q=0.6
Connection:keep-alive
Content-Length:214
Content-Type:application/json;charset=utf-8
Host:myaccount.blob.core.windows.net
Origin:http://localhost:9000
Referer:http://localhost:9000/
User-Agent:Mozilla/5.0 (Macintosh; Intel Mac OS X 10_11_0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.80 Safari/537.36

и данные запроса ->

------WebKitFormBoundary3rxc8zHbnz4expeP
Content-Disposition: form-data; name="file"; filename="test.txt"
Content-Type: text/plain


------WebKitFormBoundary3rxc8zHbnz4expeP--

Итак, у кого-нибудь есть идея?


person F4Ke    schedule 06.11.2015    source источник
comment
Похоже на проблему с большими двоичными объектами в лазурном хранилище.   -  person danial    schedule 07.11.2015
comment
Вы все еще сталкиваетесь с этой проблемой?   -  person Lavanya Kasarabada - MSFT    schedule 03.12.2015
comment
Привет, нет, я этого не вижу, я нашел решение, я отправлю его через 5 минут   -  person F4Ke    schedule 03.12.2015


Ответы (1)


Ответ заключался в том, что Content-Type, отправленный в HTTP-запросе, никогда не был подходящим типом.

Это потому что

Upload.upload

не позволяет вам это изменить.

НО вы можете использовать http метод той же библиотеки, и он будет работать следующим образом:

  Upload.http
    url: uploadInfo.url
    method: 'PUT'
    headers: {
    "Content-Type": file.type
    [other headers ...]
  }
  data: file

и вот так! оно работает !

person F4Ke    schedule 03.12.2015