利用oss进行数据库和网站图片备份
1.背景
由于网站迁移到香港云 服务器,虽然便宜,但是宿主服务器时不时重启,为了预防不可控的因素导致网站资料丢失,所以想到用OSS 备份网站数据,bucket选择在香港地区创建,这样和你服务器传输会更快。
ossutil支持通过Windows、Linux和macOS系统以命令行方式管理OSS数据。
2.安装
sudo -v ; curl https://gosspublic.alicdn.com/ossutil/install.sh | sudo bash
说明
-
安装过程中,需要使用解压工具(unzip、7z)解压软件包,请提前安装其中的一个解压工具。
-
安装完成后,ossutil会安装到/usr/bin/目录下。
3.配置
输入配置命令
ossutil config
根据提示设置配置文件路径。
请输入配置文件名,文件名可以带路径(默认为:/home/user/.ossutilconfig,回车将使用默认路径。
如果用户设置为其它路径,在使用命令时需要将--config-file选项设置为该路径):
ossutil默认使用/home/user/.ossutilconfig作为配置文件,若您设置了配置文件的路径,则每次使用命令时需增加-c选项指定配置文件。例如配置文件保存为/home/config,使用ls时,命令格式如下:
ossutil ls oss://examplebucket -c /home/config
根据提示设置工具的语言。请输入语言CH
或EN
。
工具使用的语言默认与操作系统保持一致。该配置项将在此次config命令设置成功后生效。
本文以配置长期访问凭证为例,配置AccessKey ID、AccessKey Secret,STSToken设置为空。
关于如何创建AccessKey和获取Endpoint,请参见创建AccessKey和访问域名和数据中心。更多配置方式,请参见通过config命令进行快速配置。
说明
如果使用STSToken进行临时访问授权,需获取临时访问凭证,具体内容请参见使用STS临时访问凭证访问OSS。
获取到临时访问凭证后,在配置STSToken、AccessKey ID、AccessKey Secret时,请填入临时访问凭证中的SecurityToken、AccessKey ID和AccessKey Secret。
验证是否已成功 安装 ossutil。
ossutil
如果屏幕中输出ossutil所有支持的命令,表明已成功安装ossutil。
4.上传
本文以Linux系统为例,将本地文件或文件夹上传至OSS中。您在实际使用中,请根据您的系统和使用环境修改对应参数。本文涉及的通用示例说明如下:
-
本地文件:examplefile.txt(根目录下的文件)
-
本地文件夹:localfolder(根目录下的文件夹)
-
目标Bucket:examplebucket
-
目标Bucket指定目录:desfolder
1.上传文件oss
上传文件时,如果不指定上传至OSS的文件名,则默认使用原文件名进行保存;如果指定文件名,则按照指定的文件名保存在OSS中。
ossutil cp examplefile.txt oss://examplebucket/desfolder/
2.上传文件夹到oss
使用cp命令时增加-r选项,可以只将本地文件夹内的文件上传到OSS指定路径。
ossutil cp -r localfolder/ oss://examplebucket/desfolder/
上传文件夹内的文件并指定时间戳
将本地文件夹内的文件上传到OSS指定路径,文件修改时间限定在北京时间2023年10月31日10:09:18至2023年10月31日12:55:58内。
ossutil cp -r localfolder/ oss://examplebucket/desfolder/ --start-time 1698718158 --end-time 1698728158
批量上传失败重传时,可以指定--update(可缩写为-u)选项跳过已经上传成功的文件,实现增量上传。
ossutil cp -r localfolder/ oss://examplebucket/desfolder/ -u
5.下载
沿用原文件名保存文件
ossutil cp oss://examplebucket/destfolder/examplefile.txt localfolder/
下载某一个文件夹(包含子目录)下所有文件的示例如下:
ossutil cp -r oss://examplebucket/destfolder/ localfolder/
当批量下载失败或者需要增量下载文件时,可以通过指定--update(可缩写为-u)选项选择跳过已经成功下载的文件。如果本地与OSS没有同名文件,或本地同名文件的最后修改时间早于OSS文件, ossutil会下载该文件。如果本地已有同名文件,且文件的最后修改时间晚于OSS内文件时,ossutil会跳过该文件。示例如下:
ossutil cp -r oss://examplebucket/destfolder/ localfolder/ --update