2016-09-07 2 views
4

Я пытаюсь загрузить файл в Google Cloud Storage с помощью Json API. Я отправляю запрос ниже url с прикрепленным файлом.Загрузка Google Cloud Storage - Запрошенная страница не найдена. [404]

https://www.googleapis.com/upload/storage/v1/b/mybucket/o?uploadType=media&name=solarsystemlrg.png 

Но я получаю Запрошенная страница не найдена. Ошибка [404]. Когда я использую приведенный ниже URL, я могу перечислить изображения, хранящиеся в ведре (просто чтобы быть уверенным, что нет проблем с доступом, а имя ведра правильно).

https://www.googleapis.com/storage/v1/b/mybucket/o 

У меня установлены заголовки.

'Authorization' :'Bearer ' + accessToken, 
'Content-Type' : contentType, 
'Content-Length' : inputFile.size 

См. Ниже фрагмент кода.

 $.ajax({ 
     url: targetUrl, 
     headers: reqHeaders, 
     type: 'POST', 
     data: reqFormWithDataFile, 
     async: false, 
     cache: false, 
     dataType: 'jsonp', 
     useDefaultXhrHeader: false, 
     processData: false, 
     success: function (response) { 

       alert('File Upload Successful'); 

     }, 
     error: function (jqXHR, exception) { 
      var msg = ''; 
      if (jqXHR.status === 0) { 
       msg = 'Not connect.\n Verify Network.'; 
      } else if (jqXHR.status == 404) { 
       msg = 'Requested page not found. [404]'; 
      } else if (jqXHR.status == 500) { 
       msg = 'Internal Server Error [500].'; 
      } else if (exception === 'parsererror') { 
       msg = 'Requested JSON parse failed.'; 
      } else if (exception === 'timeout') { 
       msg = 'Time out error.'; 
      } else if (exception === 'abort') { 
       msg = 'Ajax request aborted.'; 
      } else { 
       msg = 'Uncaught Error.\n' + jqXHR.responseText; 
      } 
      alert(msg); 
     } 
    }); 

Нужно ли использовать другой URL-адрес? Или нужна ли другая настройка? Пожалуйста помоги.

ответ

0

Это правильный URL-адрес, если вы замените mybucket своим фактическим именем ведра. Прочитав через jquery.ajax(), я подражал тому, что я считаю поведением, добавив &callback=foo, из-за dataType: 'jsonp' и &_=1474410231688, потому что cache: false, и выдал запрос через curl и создал действительный объект с действительным обратным вызовом. Можете ли вы зарегистрировать весь jqXHR, чтобы узнать больше о статусе?

Смежные вопросы