Как загрузить файлы, полученные в Lumen API, в BOX API с помощью guzzlehttp

Я пытаюсь загрузить файлы на диск Box через его API. Я загружаю этот файл из почтальона в конечную точку через собственный персональный API Lumen, а затем собираюсь отправить файл в Box API. Тем не менее, я продолжаю получать 500 ошибок сервера от Box API. Это запрос от Почтальона.

введите описание изображения здесь

Ниже приведена функция контроллера, которая получает данные от почтальона:

public function addFile(Request $request) {
$file = $request->file('file');
$fileName = $request->get("name");

if ($file->getSize() > 1000000) {
throw new BadRequestException(
"Your file size is too big. Should be less that 1 mb.");
}

$boxApi = new BoxApi();
$fileUploadResponse = $boxApi->uploadFile($file, $fileName);
if ($fileUploadResponse->getStatusCode() == 201) {
return $this->respond("File has been uploaded successfully", 201);
}
}

И метод класса BoxApi для загрузки это:

public function uploadFile(UploadedFile $file, $fileName)
{
$endpoint = "/files/content";
$response = $this->client->request(
"POST",
$this->boxApiUploadUrl . $endpoint,
[
"headers" => [
"Authorization" => "Bearer AUTH_TOKEN",
"Content-Type" => "multipart/form-data",
"enctype" => "multipart/form-data"],
"multipart" => [
[
"name" => "file",
"contents" => $file,
"filename" => $fileName
],
[
"name" => "attributes",
"contents" => json_encode([
"name" => $fileName,
"parent" => ['id' => '30']
])
]
]
]
);

return $response;

Из всех моих исследований переполнения стека я не нашел ни одного кода, который бы передавал headers ключ и multipart ключ в то же время. Я не уверен, что это может быть проблемой, но если я уберу headersподнимает UnAuthorizedException,

Я не могу понять, что я делаю не так или может быть проблема с самим API. Любая помощь будет очень признательна.

1

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector