[英]Upload files and resume in azure blob storage python
下面是分塊上傳文件的代碼:
azure_container = "dummy-container"
file_path = "test.txt"
chunk_size=4*1024*1024
blob_service_client = BlobServiceClient.from_connection_string(azure_connection_string)
blob_client = blob_service_client.get_blob_client(container=azure_container, blob="testingfile.txt")
test_main = []
with open(file_path, 'rb') as datax:
#while True:
chunk_data = datax.read(chunk_size)
print(len(chunk_data))
#chunk_data = [str(chunk_data, 'utf-8').split("\r")]
# for q in chunk_data[0]:
# time.sleep(0.5)
# print(q.strip())
#print(chunk_data)
blob_client.upload_blob(chunk_data, overwrite=True)
如果在上傳過程中發生某些事情,我想恢復上傳,因為我正在使用數據塊並記錄數據塊以從左側繼續,但是如何在不覆蓋的情況下上傳? 換句話說,在停止后繼續上傳相同的文件。
對於這個“異步”和“等待”工作正常。 但如果有更好的解決方案,請發布。
async def uploadin_files(file_path):
for files_to_upload in file_path:
time.sleep(2)
blob_client = blob_service_client.get_blob_client(container=azure_container, blob=files_to_upload)
with open(files_to_upload, 'rb') as datax:
chunk_data_original = datax.read()
blob_client.upload_blob(chunk_data_original, overwrite=True)
print(files_to_upload,"Done uploading")
await uploadin_files(file_path_main)
它甚至在斷開連接后也能正常工作。網絡有時會再次連接回來!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.