一、编写流程
0、前提条件
(1)RAM权限
- 已开通函数计算服务。具体操作,请参见开通函数计算服务。【需要授权给RAM用户全部函数计算和函数调用功能】
- 已开通OSS服务并在OSS创建存储空间。具体操作,请参见开通OSS服务并创建存储空间。【需要oss全部权限】
- 已安装并配置Serverless Devs。具体操作,请参见安装Serverless Devs和配置Serverless Devs。
- 两个项目,一个转为jar包压缩为zip上传到阿里云的函数计算
(2)代码库
gitee代码路径:fc-oss: 关于使用函数计算实现多个文件的打包下载
1、新建服务和函数
2、将压缩包上传
注意,这里是将jar包打包为zip格式再上传,上传前记得检查环境配置
启动命令:java -jar jar包名称
3、配置高级配置
4、设置触发器
5、编辑测试函数
这里根据项目实际路径来,按照需求填好数据以后,点击“测试函数”,控制台会打印结果,如果响应失败,根据控制台报错就修改即可。
二、报错和解决
(1)0015-00000227
[ErrorCode]: BucketAlreadyExists
[RequestId]: 659F7D5099F00D3530BF9BC9
[HostId]: testnian.oss-cn-beijing.aliyuncs.com
[ResponseError]:
<?xml version="1.0" encoding="UTF-8"?>
<Error>
<Code>BucketAlreadyExists</Code>
<Message>Bucket already exists can't modify location.</Message>
<RequestId>659F7D5099F00D3530BF9BC9</RequestId>
<HostId>testnian.oss-cn-beijing.aliyuncs.com</HostId>
<BucketName>testnian</BucketName>
<EC>0015-00000227</EC>
<RecommendDoc>https://api.aliyun.com/troubleshoot?q=0015-00000227</RecommendDoc>
</Error>
- 原因:当前region和bucket不配对
- 解决:到bucket列表拿到外网访问地址
(2)0015-00000104
- 原因:操作的Bucket属于其他用户。
- 解决:登录当前RAM用户,新建一个bucket