Я пытаюсь загрузить файл размером около 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 ###