0

Я совершенно новый для загрузки файлов .... Я использую angular-file-upload, который создает XHR за пределами angularjs для загрузки файлов в хранилище облачных хранилищ Google. Когда я пытаюсь загрузить, я продолжаю получать ошибку ниже. Как я могу это решить?ошибка: плохой тип содержимого. Пожалуйста, используйте multipart

400 Bad content type. Please use multipart. 

Вот мои настройки контроллера:

var uploader = $scope.uploader = new FileUploader({ 
     url: 'https://www.googleapis.com/upload/storage/v1/b/bucketsbuckets/o?uploadType=multipart', 
     headers : { 
      'Authorization': 'Bearer ya29.lgHmbYk-5FgxRElKafV4qdyWsdMjBFoO97S75p4vB0G0d6fryD5LASpf3JUY8Av9Yzhp9cQP8IQqhA', 
      'Content-Type': 'multipart/form-data' 
     }, 
     autoUpload:true 
    }); 

ответ

1

Проблема заключается в том, что конечная точке вы используете для многочастных загрузок, но не FORM на основе многокомпонентных загрузок. Если вы установите для параметра Content-Type значение «multipart/related» вместо «multipart/form-data», вы должны продолжить.

Многостраничная загрузка в эту конечную точку, «www.googleapis.com/upload/storage/etc?uploadType=multipart», ожидает многочастное сообщение с ровно двумя частями, первая часть - метаданные объекта, в JSON , а вторая часть - данными.

Подробнее об этих требованиях здесь: https://cloud.google.com/storage/docs/json_api/v1/how-tos/upload

Если, однако, вы хотите, чтобы сделать загрузку в стиле представления формы, что также возможно, но правила разные. В этом случае вы отправите POST на «storage.googleapis.com/BUCKET/OBJECT» с различными подходящими параметрами формы: https://cloud.google.com/storage/docs/reference-methods#postobject

Теперь все это предполагает, что вы пытаетесь выполнить загрузку как по какой-либо причине. Это может потребоваться, если вам нужно установить некоторые конкретные свойства метаданных на объект, но если нет, вы можете сделать вещи сложнее для себя. Простой PUT для «storage.googleapis.com/BUCKET/OBJECT» будет работать очень хорошо (хотя я не знаком с загрузкой углового файла и не знаю, поддерживает ли он загрузку без формы).