0
我正在使用django和django-storage以及S3來管理一些上傳的文件。這些文件可以在「功能」文件夾上傳,例如:移動文件,而無需在django-storages和S3中打開
/上傳/產品/ PRODUCT_CODE/功能/名 .PDF
,我想文件搬出這功能文件夾,刪除原始文件(最終當所有文件已被處理包含文件夾),這樣他們就可以在這裏找到:
/上傳/產品/ PRODUCT_CODE/名 .PDF
目前,我有下面的代碼來做到這一點:
def move_files_in_folders(path, folder):
files = default_storage.listdir(path+"/"+folder)
returnable_file_list = list()
for filename in files[1]:
if filename is not '':
movable_file = default_storage.open(path+'/'+folder+'/'+filename)
default_storage.save(path+'/'+filename, movable_file)
default_storage.delete(path+'/'+folder+'/'+filename)
returnable_file_list.append(filename)
default_storage.delete(path + '/' + folder)
return returnable_file_list
這工作,但它是非常緩慢的長文件列表作爲系統將不得不打開每個文件並重新保存它。
有沒有一種方法可以重構此代碼以避免昂貴的打開和保存調用?
它會成爲使用AWS Command Line Interface的選項嗎?那麼你就不需要在你的python代碼中執行這些移動操作,而是讓命令行命令爲你完成這項工作。 – matyas