Как передать файл из запроса на многочастную загрузку на S3 - PullRequest
0 голосов
/ 26 февраля 2020

Я пытаюсь загрузить файл размером около 10 ГБ в S3. Я использую Django. Я нашел эту ссылку о том, как объединить файл в файл S3 для загрузки https://gist.github.com/teasherm/bb73f21ed2f3b46bc1c2ca48ec2c1cf5, который действительно работает, но я еще не интегрировал его, на мой взгляд.

Поэтому я использую мультизагрузочную часть до S3. Я загружаю файл из браузера, затем получаю файлы из Django views.py, как я могу получить файл из запроса и передать его, так как он запрашивает путь к файлу. Пожалуйста, дайте мне немного света.

Ниже мой код.

JQuery: загрузить. js

var upload_xhr = $.ajax({
            url: url,
            type: 'POST',
            cache: false,
            contentType: false,
            processData: false,
            data: form_data,
            async: true,
            xhr: function()
                {
                    var xhr = new window.XMLHttpRequest();
                    xhr.upload.addEventListener("progress", function(evt){
                    if (evt.lengthComputable) {
                        var percentComplete = Math.floor((evt.loaded / evt.total) * 100) + '%';
                        let upload_size = $('div[progress-marker=' + upload_counter +']')[0];
                        $(upload_size).attr('style', 'width:' + percentComplete);
                        let progress_status = $('#' + upload_counter+ '.progress-status').text(percentComplete);



                }
                }, false);
                return xhr;
            },
        success: function(res) {
            console.log('success')

        },
        error: function(xhr, status, thrownError){
            console.log(thrownError)

        }
    });

views.py

   def post(self, request, *args, **kwargs):
    files = request.FILES.getlist('file')
    folder_parent_id = request.POST.get('folder_parent_pri')
    file_name = request.POST.get('file_name_pri')
    response = 'failed'
    print(files)

     with open(files[0], "rb") as f:
        i = 1
        data = 0
        while True:
            data = f.read(20971520)
            print(data)
    ## here is the s3.multipart_upload() code ###
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...