Загрузка в шкафчик в Desire2Learn

У меня возникла проблема с загрузкой файла в хранилище в API D2L. Данные для отправки ниже.

В ответ на это получаю ошибку 404. Я пробовал использовать «test2.jpg» и тип содержимого image/jpeg, я также пробовал использовать обычный текст вместо двоичного и использовать text/plain в качестве типа содержимого.

Любые советы будут полезны

Спасибо.

POST /d2l/api/le/1.0/locker/myLocker/test?<auth Keys> HTTP/1.1  
User-Agent: PECL::HTTP/1.6.1-dev (PHP/5.2.6)  
Host: <server>
Accept: */*  
Content-Type: multipart/mixed; boundary=BOUND  
Content-Length: 252  

--BOUND  
Content-Type: application/json  

{"Description":"test2.tst", "IsPublic":false}  
--BOUND  
Content-Disposition: form-data; name=""; filename="test2.tst"  
Content-Type: application/x-octetstream  

<base64_encoded string>
--BOUND--

person user1555498    schedule 30.07.2012    source источник
comment
Два возможных момента в вашем примере: (а) имя файла, которое вы предоставляете для загруженных данных файла, может иметь расширение файла, соответствующее указанному типу содержимого (но, возможно, нет); (b) запрос POST, вероятно, нуждается в заголовке Content-Length верхнего уровня, который описывает общий размер данных тела POST (всех частей).   -  person Viktor Haag    schedule 31.07.2012
comment
Я обновил вставку фактического HTTP-запроса. Это все еще возвращает ошибку - я получаю ошибку 302, перенаправляющую на страницу 404.   -  person user1555498    schedule 31.07.2012
comment
Возможно, запрос не находит расположение папки для размещения файла: (а) убедитесь, что папка «тест» существует как дочерняя папка корневой папки вашего шкафчика, и (б) убедитесь, что ваш маршрут заканчивается косая черта (/d2l/api/le/1.0/locker/myLocker/test/), возможно?   -  person Viktor Haag    schedule 31.07.2012
comment
Спасибо за быстрый отзыв; Тестовая папка действительно существует, я создал ее по тому же запросу и проверил, что она существует в шкафчике. Я пробовал как с завершающей косой чертой, так и без нее, а также устанавливал путь к пустой строке, пытаясь поместить файл в корень шкафчиков. Я также пробовал использовать расширения .jpg и тип image/jpeg, а также тип application/binary.   -  person user1555498    schedule 31.07.2012
comment
Какая версия продукта LMS является вашим серверным экземпляром? 9.4.1?   -  person Viktor Haag    schedule 31.07.2012
comment
Мы выполнили успешный тест для загрузки в шкафчик вызывающего пользователя на тестовом экземпляре версии 10 с использованием этого маршрута API. Единственная разница в отправленном HTTP, которую я вижу, заключается в том, что маршрут на нашей стороне имеет завершающую косую черту. В остальном два блока HTTP функционально одинаковы (одинаковые заголовки и т. д. и т. д.). Это наводит меня на мысль, что у вас есть какая-то проблема с разрешениями или, возможно, в вашем шкафчике недостаточно места для обработки загруженных данных?   -  person Viktor Haag    schedule 01.08.2012
comment
Я добавил косую черту в конце и подтвердил, что папка действительно существует. В настоящее время шкафчик занимает 35 байт из 1000 КБ, поэтому для файла достаточно места. Вы знаете, где я могу проверить разрешения?   -  person user1555498    schedule 02.08.2012
comment
Не уверен, какие именно разрешения используются для загрузки Locker. Следующим шагом может быть переход на следующий этап поддержки (docs.valence.desire2learn. com/about.html#support) и зарегистрировать проблему в системе отслеживания проблем D2L...   -  person Viktor Haag    schedule 02.08.2012
comment
Спасибо всем за помощь Виктор! Оказывается, проблема заключалась в том, что я выдавал только символы новой строки (\n) вместо возврата каретки/новой строки (\r\n) в своих заголовках.   -  person user1555498    schedule 02.08.2012
comment
Без проблем; Добро пожаловать!   -  person Viktor Haag    schedule 03.08.2012


Ответы (1)


Решение состояло в том, чтобы убедиться, что заголовок использует \r\n вместо \n для разделения разделов.

person user1555498    schedule 02.08.2012