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

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

enter image description here

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

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

...