文档地址:如何使用函数计算将多个文件打包下载到本地_对象存储 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"]
}

Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐