安装Restheart
-
检查Docker是否已安装,如未安装,请先安装Docker服务
docker info
-
检查是否已安装Docker Compose命令行工具,如未安装,请先安装Docker Compose
docker compose -h
-
下载最新的restheart compose文件, 该文件位置不要移动,后续自动启动服务还依赖此文件的绝对路径;
curl https://raw.githubusercontent.com/SoftInstigate/restheart/master/docker-compose.yml --output docker-compose.yml
- 启动restheart,可能由于网络问题,下载镜像失败;如失败检查Docker的镜像源是否已更换为国内源,如已更换国内源,请耐心等待。
sudo docker-compose up -d
- 检查是否安装成功:
curl -i http://localhost:8080/ping
- 查看运行日志
sudo docker-compose logs -f
- 关闭服务器
sudo docker-compose down(注意: 千万**不要**加-v参数,会擦除已有数据)
配置开机自动启动
- CD工作目录
cd /etc/profile.d
- 新建启动脚本
sudo vi start_rest_heart.sh
- 把下面内容复制进文件中
docker-compose -f /home/phm/docker-compose.yaml up -d
- 重启服务器检查restheart是否自动启动,如未启动,检查文件执行权限是否足够
配置文件存储服务例子
- 新建Bucket,其中mybucket是存储桶名称,可以根据项目更换合理的名称;.files结尾不可更换,此为文件存储标记;以下例子都已存储桶名为mybucket为例
curl -v -u admin:secret -X PUT -H "Content-Type: application/json" localhost:8080/mybucket.files
- 上传文件检测,其中/home/phm/test.jpg为测试图片,只要保证在路径下有测试文件,可以更换为其他合理的值,mytest.jpg为上传后的名称,可更换;查看日志,如有HTTP返回值201或200,说明上传成功。
curl -v -u admin:secret -X PUT -F "file=@/home/phm/test.jpg" localhost:8080/mybucket.files/mytest.jpg
- 下载上传的文件,此请求会返回文件的元数据;返回200成功
curl -u admin:secret http://localhost:8080/mybucket.files/mytest.jpg
- 下载文件,下载刚上传的文件到本地,可以对比与上传文件的大小检测
curl -u admin:secret http://localhost:8080/mybucket.files/mytest.jpg/binary
API
- 创建文件存储桶:
Url: http://localhost:8080/{bucketname}.files(bucketname为文件存储桶名称)
Method: PUT
Authorization: admin:secret(此参数放置在HTTP请求头中,键为Authorization,值为admin:secret的BASE64编码)
Content-Type: application/json
返回201说明成功
- 上传文件
Url: http://localhost:8080/{bucketname}/{filename} (bucketname为文件存储桶名称, filename为上传后文件在桶中的名称)
Method: PUT
Authorization: admin:secret(此参数放置在HTTP请求头中,键为Authorization,值为admin:secret的BASE64编码)
Content-Type: multipart/form-data
返回201说明成功
- 下载文件元数据
Url: http://localhost:8080/{bucketname}/{filename} (bucketname为文件存储桶名称, filename为上传后文件在桶中的名称)
Method: GET
Authorization: admin:secret(此参数放置在HTTP请求头中,键为Authorization,值为admin:secret的BASE64编码)
- 下载原文件
Url: http://localhost:8080/{bucketname}/{filename}/binary (bucketname为文件存储桶名称, filename为上传后文件在桶中的名称)
Method: GET
Authorization: admin:secret(此参数放置在HTTP请求头中,键为Authorization,值为admin:secret的BASE64编码)
网友评论