存储与文件服务配置

主要文件

这部分配置通常涉及:

  • mongo.db.conf
  • domains.mongo.db.conf
  • server.conf

MongoDB 核心存储

mongo.db.conf 用于配置应用核心数据库的连接参数,常见内容包括:

  • 主机地址
  • 端口
  • 数据库名
  • 认证库
  • 用户名与口令
  • 是否自动建索引
  • 是否启用事务
  • 副本集名称

对 Galaxy 应用而言,这是最基础、最关键的存储配置之一。

多域名存储

如果应用采用按域名分库的方式,则需要额外维护 domains.mongo.db.conf

这一层配置解决的是:

  • 默认域名使用哪个数据库
  • 某个具体域名使用哪个数据库
  • 各域名数据库是否启用事务与副本集

RocksDB 内嵌 KV 存储

典型形式是:

galaxyplatform.kvs.repos.appdb.uri=rockskv:/appdb

配置的含义是:

  • 声明一个名为 appdb 的 KV 仓库
  • 使用 rockskv:/... 作为 RocksDB 类型的存储 URI
  • 将该仓库对应的根存储对象注册到应用上下文中

文件服务

文件服务相关配置通常位于 server.conf,重点包括:

  • galaxyplatform.ffs.storage.root
  • 文件 ID 是否包含扩展名
  • 缩略图尺寸
  • 文件服务匿名访问 URL
  • 文件服务 CORS 放行规则

文件服务的配置既涉及“物理存储目录”,也同时会涉及 Web 匿名访问、跨域访问规则。

可复制模板

mongo.db.conf 模板

#######################################
# MongoDB 数据库
#######################################

#-------------------------------------------------
# 应用核心库 MongoDB 的连接配置;
#-------------------------------------------------
# spring.data.mongodb.auto-index-creation=true
spring.data.mongodb.host=127.0.0.1
spring.data.mongodb.port=27017
spring.data.mongodb.database=dataDB
spring.data.mongodb.authenticationDatabase=authDB
spring.data.mongodb.username=usernameOfDb
spring.data.mongodb.password=passwordOfDb

# 是否开启事务;默认为 false ;
# spring.data.mongodb.enable-transaction=true
# 复制集名称;MongoDB 服务器需要以复制集模式运行才能支持事务;
# spring.data.mongodb.replica-set-name=rs0

domains.mongo.db.conf 模板

#######################################
# 设置按“域名”隔离的 MongoDB 数据库
#######################################

# 是否启用按“域名”进行数据库级别的隔离机制;
# 默认为 false;
application.data.mongodb.domains-enable=true

# --------------------------------
# 配置采用默认数据库的“域”;
#
# “默认数据库”是指通过 spring.data.mongodb 标准配置项设置的数据库;
#
# 可以设定通配符;例如: *.linkgie.com
# --------------------------------
application.data.mongodb.default-domains=localhost,127.0.0.1,app.example.com

# --------------------------------
# 在支持按“域名”进行数据库级别隔离的情况下,当上下文未定义域名时,是否以默认域来处理;
# 默认为 true;
# application.data.mongodb.use-default-on-empty=true
# --------------------------------

# ---------------------------------------------------------
# ----- 示例:为域名 shop.example.com 设置独立的数据库 -------
# ---------------------------------------------------------
application.data.mongodb.domains[shop.example.com].host=127.0.0.1
application.data.mongodb.domains[shop.example.com].port=27017
application.data.mongodb.domains[shop.example.com].database=shopdb
application.data.mongodb.domains[shop.example.com].authentication-database=shopdb
application.data.mongodb.domains[shop.example.com].username=shopUser
application.data.mongodb.domains[shop.example.com].password=changeMe
# 自动创建索引;
application.data.mongodb.domains[shop.example.com].auto-index-creation=true
# 是否启用事务;
application.data.mongodb.domains[shop.example.com].enable-transaction=true
# 复制集名称;
# MongoDB 服务器需要以复制集模式运行才能支持事务;
application.data.mongodb.domains[shop.example.com].replica-set-name=rs0

server.conf 中的 RocksDB 与文件服务模板

#######################################
# 基于 RocksDB 的嵌入式 KV 数据库
#######################################

# 声明一个 rockskv 仓库 appdb ;
# 并以 appdb 为名注册该仓库的根存储对象 KVStorage 为 Bean;
#galaxyplatform.kvs.repos.appdb.uri=rockskv:/appdb

#######################################
# 轻量文件存储服务
#######################################

# 文件id是否包含扩展名;默认为 true ;
# 文件访问的 URL 以 id 结尾,id 包含扩展名能够使得整个 URL
# 能够被 nginx 等web服务器识别为静态资源而有效进行缓存;
#
# galaxyplatform.ffs.id.include-ext=true

# 图片缩略图的最大尺寸,单位:像素;
# galaxyplatform.ffs.thumbnail.max-width=90
# galaxyplatform.ffs.thumbnail.max-height=90

# 存储根目录;
# 未设置时,会将根目录定位于 HOME/.ffs
# galaxyplatform.ffs.storage.root=

# 设置跨源资源共享(CORS: Cross Origin Resource Share);
# galaxyplatform.web.cors.allows[/api/ffs/secure/**].headers=*
# galaxyplatform.web.cors.allows[/api/ffs/secure/**].methods=*
# galaxyplatform.web.cors.allows[/api/ffs/secure/**].origins=http://site1-host:8081, https://site2-host:8082

相关AI skills

  • galaxy-app-config-storage
  • galaxy-app-config-file-service
最近更新:
发布者: huanghaiquan
扫码咨询