文档地址:如何使用函数计算将多个文件打包下载到本地_对象存储 OSS-阿里云
计算函数可以通过对外公网域名进行访问:
计算函数的参数有几个:
bucket:使用的OSS的bucket,必传
source-dir:需要打包的文件所在的目录,必传,传这个参数会将这个目录下的文件都进行打包
source-files:需要打包的文件,多个,传这个会将这些文件都进行打包
dest-file:保存在OSS中的包含文件名的zip包路径
可以通过对外公网域名进行POST请求来进行打包。(传参类型为application/json)
如果不想将文件下载到本地,而是返回打包好的阿里云OSS地址,需要进行一下修改,注释36行,并修改39行的返回值
修改前:
修改后:
这样就会返回zip包的相对路径,加上OSS域名返回给前端就可以跳转去下载了
例如返回了:out/1.zip
加上OSS域名返回:https://***.oss-cn-guangzhou.aliyuncs.com/out/1.zip
自定义文件名:
如果想自定义压缩包里的文件名称,可以通过修改83行的zip_add_file方法来实现:
def zip_add_file(zip_file, key):
key_arr = key.split('::')
LOG.info('add zip file: %s', key_arr[0])
if key[-1] == '/':
return
obj = oss_client.get_object(key_arr[0])
print(key_arr)
zip_file.write_file(key_arr[1], obj,
compress_type=zipfile.ZIP_STORED)
其中::为文件的分隔符,这样的话传输数据需要这样传:
{
"bucket": "bucket-name",
"source-dir": "upload/",
"source-files": ["upload/1.jpg::1a.jpg","upload/2.jpg::2b.jpg"]
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)