2016-03-11 4 views
1

Я ищу какие-либо прямые форвардные примеры на загрузку непосредственно Amazon s3 на кусках без каких-либо обработок на стороне сервера (кроме подписания запроса)Выгрузки фрагментированных файлов непосредственно на Amazon s3

Я посмотрел на множество вариантов и пока все примеры либо адресованы только фрагментации с сервера, либо просто отправляются на s3 из браузера в виде одного набора, или они настолько стары, что они just don't work anymore.

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

В конечном счете, цель состоит в том, чтобы отправить файл размером 500 МБ в s3 менее чем за 5 секунд. Используя сервер в php, я могу приблизиться к 10 секундам, но клиент хочет полностью отказаться от обработки сервера и перейти прямо к s3, так что это те правила, которыми я связан.

Я нахожу документацию Амазонки чрезвычайно сложной и труднодоступной. Кто-нибудь знает, как полный пример блокировки браузера s3?

Основная идея настройки Plupload:

$("#uploader").plupload({ 
    runtimes : 'html5,flash,silverlight', 
    url : 'http://<?php echo $bucket; ?>.s3.amazonaws.com/', 

    multipart: true, 
    multipart_params: { 
     'key': '${filename}', // use filename as a key 
     'Filename': '${filename}', // adding this to keep consistency across the runtimes 
     'acl': 'public-read', 
     'Content-Type': 'Binary/Octet-Stream', 
     'AWSAccessKeyId' : '<?php echo $accessKeyId; ?>',  
     'policy': '<?php echo $policy; ?>', 
     'signature': '<?php echo $signature; ?>', 
     'Multiple_queues': True, 
    }, 
    file_data_name: 'file', 
    filters : { 
     // Maximum file size (apparently not per chunk) 
     max_file_size : '5mb', 
    }, 
    flash_swf_url : '../js/Moxie.swf', 
    silverlight_xap_url : '../js/Moxie.xap' 
}); 

кажется многочастному не несколько кусков, но, возможно, несколько файлов в общей сложности. Не уверен, мне нужно только отправить его.

Любой ввод оценивается.

+0

Чтобы уточнить ... вы хотите отправить файл на S3 с компьютера клиента (пользователя) или с сервера? Если последний, просмотрите ли вы класс '' Transfer' (https://docs.aws.amazon.com/aws-sdk-php/v3/api/class-Aws.S3.Transfer.html) в AWS SDK для PHP? Он поддерживает многостраничную загрузку. –

+0

От клиента. Стандартная библиотека AWS обрабатывает серверные передачи прямо из коробки, но неудобно замаскивается над каналом от клиента. –

+0

Возможно [Объявление управляющего загрузчика Amazon S3 в AWS SDK для JavaScript] (https://blogs.aws.amazon.com/javascript/post/Tx3EQZP53BODXWF/Announcing- the-Amazon-S3-Managed-Uploader-in-the -AWS-SDK для JavaScript) или [HTML5 и Amazon S3 Multi-Part uploads] (https://stackoverflow.com/questions/18075676/html5-and-amazon-s3-multi-part-uploads)? Последний использует [AWS S3 Multipart Upload from Browser] (https://github.com/ienzam/s3-multipart-upload-browser). –

ответ

1

Plupload does support chunked uploads так все, что вам нужно сделать, это настроить его должным образом:

var uploader = new plupload.Uploader({ 
browse_button: 'browse', // this can be an id of a DOM element or the DOM element itself 
url: 'upload.php', 
chunk_size: '200kb', 
max_retries: 3 

});

В последних двух строках вышеуказанной конфигурации будет задан набор.

+0

Эта проблема старая и больше не нужна. Клиент пошел с чем-то другим. Однако, если вы хотите обновить ответ с хорошим фрагментом кода - в случае, если ссылка не работает, я могу принять это как ответ –

+0

Добавлен фрагмент кода. См. Выше. – JCL1178

Смежные вопросы