Я пытаюсь загрузить файлы на диск 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.Буду очень признателен за любую помощь.