Загрузка больших файлов с помощью WebService :: Dropbox - PullRequest
0 голосов
/ 14 сентября 2018

Может ли кто-нибудь здесь привести пример кода для использования модуля WebService::Dropbox для загрузки файлов размером более 1 ГБ?

Я следовал инструкциям и успешно загрузил файлы размером менее 150 МБ, но яне понимаю, как загружать файлы большего размера.

1 Ответ

0 голосов
/ 14 сентября 2018

В документации к модулю говорится о методе update

. Не используйте его для загрузки файла размером более 150 МБ.Вместо этого создайте сеанс загрузки с upload_session / start.

И, вероятно, именно поэтому вы упомянули 150 МБ в своем вопросе.

В документации для upload_session есть это

Загрузка больших файлов с помощью API upload_session

# File Handle  
my $content = IO::File->new('./mysql.dump', '<');  

my $result = $dropbox->upload_session($path, $content);  

my $result = $dropbox->upload_session($path, $content, {  
    mode => 'add',  
    autorename => JSON::true,  
    mute => JSON::false  
});

Обратите внимание, что, как и документация для upload, эти два примера вызова upload_session являются альтернативами , и вам следует выбирать второе, только если у вас есть особые требования, для которых требуются значения не по умолчанию

Также нет необходимости использовать IO::File для открытия файла: стандартный вызов Perl openбудет работать нормально, и вы должны добавить слой :raw независимо от того, используете вы IO::File или нет, например,

open my $content, '<:raw', './mysql.dump' or die $!

Также нет необходимости в JSON::true и JSON::false: простой1 и 0 будут в порядке

Это в значительной степени идентично сценарию использования upload, который, как вы говорите, работает нормально.С чем именно у вас проблемы?

...