Sign inSign up

thtfcloud/s3rver

By thtfcloud

•Updated almost 6 years ago

s3rver

Image
0

219

thtfcloud/s3rver repository overview

⁠S3rver

S3rver 是一个轻量的 S3 服务,能将文件系统映射成 S3 协议接口供归档服务进行管理。

⁠支持的 S3 协议方法

⁠存储桶(Buckets)
  • 列出存储桶(List buckets)
  • 列出某个存储桶的内容(支持 prefix、delimiter、marker、max keys 和 common prefixes)

注意:

我们禁用以下操作:

  • 创建存储桶(Create Bucket)
  • 删除某个存储桶(Delete bucket)
⁠对象(Objects)
  • 创建或更新对象(Put object,支持元数据)
  • 上传对象(Post object,分片)
  • 获取对象(Get object,包括 HEAD 方法)
  • 复制对象(Copy object,包括更新元数据)

注意:

我们禁用以下操作:

  • 删除某个对象(Delete object)
  • 批量删除对象(Delete objects)

⁠快速入门

⁠安装
# 获取源码
cd s3rver
npm install
⁠启动
node bin/s3rver.js
⁠测试
npm test
⁠构建 Docker 镜像
docker build -t thtfcloud/s3rver:3.4.0 .
⁠部署

配置文件(JSON 格式):

当前配置文件只支持设置访问 S3 接口的 Access Key 和 Secret Key。

{
  "secrets": {
    "YOUR_ACCESS_KEY": "YOUR_SECRET_KEY"
  }
}

可以写一个 shell 脚本,假设需要归档的文件夹目录路径在 /custom_data。

# filename: start_s3rver.sh

docker run -d \
  -p 4568:4568 \
  --name s3rver \
  -v /your/config/file:/opt/s3rver/config.json \
  -v /custom_data:/data/custom_data \
  thtfcloud/s3rver:3.4.0  # 根据具体镜像名称决定

需要注意以下几点:

  1. 配置文件需要挂载到容器内部的 /opt/s3rver/config.json 目录,其余位置均不生效;
  2. 将我们需要暴露出去的文件夹作为一个存储桶,需要将此文件夹挂载到容器内部的 /data/your_bucket_name 目录下面的子目录;
  3. 删除容器(重启不受影响)后,s3rver 自动创建的索引文件会丢失,下次访问对象的时候会重新构建;

启动 Docker 镜像

bash ./start_s3rver.sh

停止 Docker 镜像

docker stop s3rver

Tag summary

Content type

Image

Digest

Size

331.5 MB

Last updated

almost 6 years ago

docker pull thtfcloud/s3rver