假如我们有如下文件:
1.zip
2.zip
3.zip
4.zip
5.zip
6.zip
7.zip
8.zip
需要将其上传至gcs
简单的代码如下:
from google.cloud import storage
ls=[]
ls.append('1.zip')
ls.append('2.zip')
ls.append('3.zip')
ls.append('4.zip')
ls.append('5.zip')
ls.append('6.zip')
ls.append('7.zip')
ls.append('8.zip')
storage_client = storage.Client()
bucket = storage_client.bucket('XXXX')
for i in ls:
blob = bucket.blob(i)
blob.upload_from_filename(i)
但是想要更好的维护性,决定使用装饰器:
from google.cloud import storage
storage_client = storage.Client()
bucket = storage_client.bucket('XXXX')
ls=[]
def ap(f):
ls.append(f)
return f
@ap
def _file1():
blob = bucket.blob('1.zip')
blob.upload_from_filename('1.zip')
return 0
@ap
def _file2():
blob = bucket.blob('2.zip')
blob.upload_from_filename('2.zip')
return 0
@ap
def _file3():
blob = bucket.blob('3.zip')
blob.upload_from_filename('3.zip')
return 0
@ap
def _file4():
blob = bucket.blob('4.zip')
blob.upload_from_filename('4.zip')
return 0
@ap
def _file5():
blob = bucket.blob('5.zip')
blob.upload_from_filename('5.zip')
return 0
@ap
def _file6():
blob = bucket.blob('6.zip')
blob.upload_from_filename('6.zip')
return 0
@ap
def _file7():
blob = bucket.blob('7.zip')
blob.upload_from_filename('7.zip')
return 0
@ap
def _file8():
blob = bucket.blob('8.zip')
blob.upload_from_filename('8.zip')
return 0
def upload():
for f in ls:
f()
upload()