场景实践:使用函数计算打包下载OSS文件
体验简介
本场景将提供一台配置了Centos 7.7版本的ECS实例(云服务器)和对象存储OSS实例。通过本教程的操作,您可以基于已有的环境使用函数计算将对象存储OSS上多个文件(Object)打包下载到本地。
体验此场景后,可以掌握的知识有:
OSS基本操作
了解到函数计算基本概念
背景知识
本场景主要涉及以下云产品和服务:
对象存储OSS:阿里云对象存储OSS(Object Storage Service)是阿里云提供的海量、安全、低成本、高持久的云存储服务。其数据设计持久性不低于99.9999999999%(12个9),服务可用性(或业务连续性)不低于99.995%。OSS具有与平台无关的RESTful API接口,您可以在任何应用、任何时间、任何地点存储和访问任意类型的数据。您可以使用阿里云提供的API、SDK接口或者OSS迁移工具轻松地将海量数据移入或移出阿里云OSS。数据存储到阿里云OSS以后,您可以选择标准存储(Standard)作为移动应用、大型网站、图片分享或热点音视频的主要存储方式,也可以选择成本更低、存储期限更长的低频访问存储(Infrequent Access)、归档存储(Archive)、冷归档存储(Cold Archive)作为不经常访问数据的存储方式。当您从OSS中批量下载Object时可能会遇到批量下载不方便、小文件较多时下载缓慢等问题。通过调用函数计算,可以将OSS上的Object先打包,之后将压缩包下载到本地后再解压,实现快速下载批量文件的目的。使用函数计算打包下载OSS文件的流程如下图所示。
函数计算
函数计算是事件驱动的全托管计算服务。使用函数计算,您无需采购与管理服务器等基础设施,只需编写并上传代码。函数计算为您准备好计算资源,弹性地、可靠地运行任务,并提供日志查询、性能监控和报警等功能。
开通函数计算服务
在使用函数计算前,您需要开通函数计算服务。
说明: 本场景中提供的阿里云子账号无函数计算服务操作权限,所以请使用您自己的阿里云账号操作。您无需担心扣费问题,因为函数计算服务有一定的免费额度,请参见计费方式。
\1. 使用您自己的阿里云账号登录阿里云控制台,然后进入函数计算产品详情页。
\2. 单击【免费开通】。
\3. 阅读《函数计算服务协议》勾选同意服务协议,最后单击【立即开通】。
\4. 单击【管理控制台】进入函数计算控制台。
安装Funcraft
\1. 执行如下命令,安装支持ZIP的工具。
yum install -y unzip zip
\2. 执行如下命令,下载Funcraft工具。
curl -o fun-linux.zip http://funcruft-release.oss-accelerate.aliyuncs.com/fun/fun-v3.6.23-linux.zip
\3. 执行如下命令,解压Funcraft工具安装包。
unzip fun-linux.zip
\4. 执行如下命令,将Funcraft工具的路径增添到环境变量PATH目录中。
mv fun-v3.6.23-linux /usr/local/bin/fun
\5. 执行如下命令,验证Funcraft工具是否安装成功。
fun --version
返回如下结果,表示Funcraft工具安装成功。
\6. 执行如下命令,进行Funcraft工具本地配置。
fun config
请参考以下信息输入您的Aliyun Account ID、Aliyun Access Key ID和Aliyun Access Key Secret密钥等信息。
Aliyun Account ID:请在账号安全设置页面查看您的账号ID。
Aliyun Access Key ID和Aliyun Access Key Secret:请在安全信息管理页面查看您账号的AccessKey ID和AccessKey Secret。
如果您使用的是阿里云主账号,请在安全信息管理页面的安全提示弹框中单击继续使用AccessKey。
如果您使用的是阿里云RAM子用户,需要确保您的子用户拥有函数计算管理权限AliyunFCFullAccess,请参见为RAM用户授权。
如下图所示为您的AccessKey ID和AccessKey Secret。如果您的账号未使用过AccessKey,请单击右上角创建AccessKey。
Default region name:请选择开通的函数计算服务所在地域。
正确设置可参考下图。
部署函数
\1. 执行如下命令,下载函数代码。
wget https://codeload.github.com/awesome-fc/zip-oss/zip/master
\2. 执行如下命令,解压已下载的函数代码。
unzip master
\3. 执行如下命令,进入新产生的文件夹。
cd zip-oss-master
\4. 执行如下命令,修改event.json文件,填写需要压缩的文件所在位置。
vim event.json
进入Vim编辑器后,按下i键进入编辑模式,修改以下内容,添加完成后按下Esc键退出编辑模式,最后输入:wq后按下Enter键,保存并退出Vim编辑器。
{
"region": "cn-beijing",
"bucket": "test-unzip2",
"source-dir": "test/"
}
参数说明:
- region:填写OSS所在地域的regionid,可在第一小节中的云产品资源下拉列表中查看OSS所在地域的regionid,例如杭州填写cn-hangzhou。
- bucket:填写OSS的Bucket名称,可在第一小节中的云产品资源下拉列表中查看Bucket名称。
- source-dir:填写需要解压的文件目录,例如根目录填写./。建议将需要压缩的文件统一放在一个文件目录下。
添加后的文件内容如下所示。
\5. 执行如下命令,部署函数,并记录url值。
fun deploy
命令返回结果如下,输入Y继续。
命令返回结果如下,复制url值。
执行如下命令,触发函数。
curl -v -L -o /localpath -d @./event.json urlvalue
说明: 需要将urlvalue替换成上一步中复制的url值。
\6. 双击虚拟桌面FireFox ESR浏览器,在RAM登录页面使用云产品资源下拉列表中的子账号用户和子账号密码登录。
\7. 在浏览器中访问OSS控制台(https://oss.console.aliyun.com/bucket)。
\8. 在OSS控制台页面,单击Bucket列表。
\9. 在Bucket列表页面,单击Bucket名称。
\10. 在文件管理页面,您可以看到刚刚上传的压缩文件。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
· AI与.NET技术实操系列(六):基于图像分类模型对图像进行分类