Как получить рабочий почтовый индекс после загрузки boto3 multipart zip - PullRequest
0 голосов
/ 08 ноября 2018

Я использую boto3 (пакет python для Amazon Web Services), чтобы загрузить zip-файл в корзину. Он автоматически разбивает этот zip-файл на несколько частей и загружает его.

s3 = get_resource() # This function returns the resource
GB = 1024 ** 3
# Ensure that multipart uploads only happen if the size of a transfer
# is larger than S3's size limit for nonmultipart uploads, which is 5 GB.
config = TransferConfig(multipart_threshold=5 * GB) 

s3.meta.client.upload_file("AllPublicXML.zip", "vg-clinicaltrails2", "AllPublicXML_{}.zip".format(output_file_id), Config=config)
print ("S3 Uploading successful")

Работает как шарм. Теперь я загружаю его, используя:

s3 = get_resource() 
GB = 1024 ** 3
config = TransferConfig(multipart_threshold=5 * GB) 
list_all_objects_resource(s3, "vg-clinicaltrails2")
print("S3 download Starting for AllPublicXML_{}.zip".format(zip_file_id))
s3.meta.client.download_file("vg-clinicaltrails2", "AllPublicXML_{}.zip".format(zip_file_id), "temp_AllPublicXML.zip", Config=config)
print ("S3 download successful")

Загружает файл и сохраняет его как temp_AllPublicXML.zip. Я думаю, что этот файл не был собран из нескольких частей загрузки. Если я использую команду bash unzip temp_AllPublicXML.zip, я получаю ответ:

Archive:  temp_AllPublicXML.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 temp_AllPublicXML.zip or
        temp_AllPublicXML.zip.zip, and cannot find temp_AllPublicXML.zip.ZIP, period.

Как мне собрать этот файл вместе или использовать функцию загрузки в boto3?

Заранее спасибо

EDIT:

Чтобы уточнить, мне нужно, по возможности, чистое решение на Python и полный zip-файл после загрузки, а не сами извлеченные файлы.

...