原始网页:https://www.cockroachlabs.com/docs/stable/(/maintain/create-a-file-server/


使用IMPORT语句或是CockroachDB企业备份功能提供一个存储文件的位置。如果用户无法访问到(或根本无法使用)云存储提供商提供的服务,此时用户可以选择创建自己的文件服务器。具体地,用户可以利用HTTP Export Storage API的支持来使用该文件服务器。

该接口适用于:

HTTP Export Storage API

对于允许读写外部文件的CockroachDB任务(例如IMPORTBACKUP语句)可以指定http为前缀的文件路径来调用HTTP Export Storage API,例如http://fileserver/mnt/cockroach-exports

该API能够像传统HTTP请求一样使用GETPUTDELETE方法。在指定文件路径发出PUT请求以后,在DELETE之前可以随时GETPUT到该路径下的文件的内容。

示例

用户可以使用任何支持GETPUTDELETE方法的文件服务器。举例说明:

NOTE: 不推荐使用任何运行cockroach进程的机器用作文件服务器,避免出现性能瓶颈问题。

使用Caddy作为文件服务器

下载带有http.upload插件的caddy程序

执行caddy命令进行上传操作。

caddy -root /mnt/cockroach-exports "upload / {" 'to "/mnt/cockroach-exports"' 'yes_without_tls' "}"
tls key cert
root "/mnt/cockroach-exports"
upload / {
  to "/mnt/cockroach-exports"
}

使用nginx作为文件服务器

安装带webdav模块的nginx程序

nginx.conf文件中添加dav_methods PUT DELETE配置:

events {
    worker_connections  1024;
}
http {
  server {
    listen 20150;
    location / {
      dav_methods  PUT DELETE;
      root /mnt/cockroach-exports;
      sendfile           on;
      sendfile_max_chunk 1m;
    }
  }
}