Загрузить ZIP-файл через Dropbox Api и curl - PullRequest
0 голосов
/ 20 апреля 2019

Я пытаюсь загрузить ZIP-файл, используя

Запрос скручивания:

curl -X POST https://content.dropboxapi.com/2/files/upload \
--header "Authorization: Bearer <Access Token>" \
--header "Dropbox-API-Arg: {\"path\": \"/upload.zip\"}" \
--header "Content-Type: application/octet-stream" \
--data-binary @/upload.zip

Загрузка завершена без ошибок.Загрузка с другого устройства (сервера Ubuntu) также завершена.Но когда я пытаюсь выполнить распаковку, выдается следующее сообщение:

Archive:  upload.zip
  End-of-central-directory signature not found.  Either this file is not
  a zipfile, or it constitutes one disk of a multi-part archive.  In the
  latter case the central directory and zipfile comment will be found on
  the last disk(s) of this archive.
unzip:  cannot find zipfile directory in one of upload.zip or
        upload.zip.zip, and cannot find upload.zip.ZIP, period.

Что-то не так в моей конфигурации загрузки локонов, я думаю.Возможно, есть какой-то специальный конфиг для загрузки и скачивания .zip файлов.

Что я делаю не так?Как загрузить .zip-файл через Dropbox API по-новому?

1 Ответ

0 голосов
/ 21 апреля 2019

Через один день я обнаружил, что было не так.Как и в большинстве нерабочих ситуаций, вы должны проверить свой код и синтаксис ...

1) путь к файлу должен быть внутри кавычек:

--data-binary @"/upload.zip"

2) путь загрузки должен начинаться с косой черты:

curl -X POST https://content.dropboxapi.com/2/files/download \
    --header "Authorization: Bearer <Token>" \
    --header "Dropbox-API-Arg: {\"path\": \"/directory/upload.zip\"}" >>upload.zip

Как правило, рекомендуется проверить, имеет ли загруженный zip-файл правильный размер файла.Если размер файла не такой, как в локальном хранилище, загрузка не была успешно завершена.

...