主机选购
对象存储还是 VPS 磁盘:网站图片、异地备份与照片存储
按文件访问方式选择本地磁盘或对象存储,核对存储、请求、出站和恢复成本,并设置适合文件用途的权限。
网站图片增长后,要先看应用怎样读写文件
VPS 磁盘作为文件系统供应用读写;对象存储通过 API 按对象键保存和读取文件。网站图片和备份归档可以考虑对象存储,但应用必须支持对应存储接口。数据库数据目录和需要文件锁的程序,不能只改一个路径就迁到对象存储。
个人照片应用按自己的官方存储要求部署。Immich 的数据库仍需要合适的本地存储;不要把 S3 接口或挂载工具直接视作数据库磁盘替代品。已有大硬盘 VPS 能满足容量和恢复需求时,也没有必要仅为分离文件改变架构。
三个用途,对应不同访问权限
公开网站图片可通过专用域名提供读取,上传由服务器使用受限凭据完成。私有备份保持桶私有,恢复时使用授权请求;私人照片不因配置了图片域名就开放整个文件库。
需要短期分享的对象可以使用有期限的授权链接,但链接获得者在有效期内可能访问文件。下载方式、缓存与 CORS 根据客户端设置;CORS 控制浏览器跨域请求,不是文件权限控制。
费用不只按文件容量计算
评估时分别列出平均存储量、写入和列举请求、读取请求、出站流量,以及存储类别对应的取回和最低保存期限。大量小文件可能产生较多请求;迁入时还有一次全量传输,恢复时又有一次下载。不同产品的计费项并不相同。
Cloudflare R2 当前公布的标准存储计费包括容量与 Class A、Class B 操作,出站流量不收费;低频存储另有取回和保存期限要求。这里不列固定报价,按官方价格页与实际地区、存储类别估算,也不能将 R2 的出站规则套用到所有对象存储。
与 VPS 扩盘比较时,把备份副本和应用改造成本也算进去。已经包含的月流量与按量收费的出站,不能只按每 GB 存储单价比较。
接入前保存路径与权限清单
先用少量文件验证上传、下载、删除权限和域名访问,再迁移完整文件库。记录 endpoint、bucket、对象键规则、应用存储配置和自定义域名;访问密钥保存到受保护的配置中,不放前端代码或公开文章。
服务器使用仅能访问所需桶和操作的凭据。迁移后抽查不同目录、文件名和旧图片链接,确认缓存更新、Content-Type 和下载行为正常;应用数据库中的文件地址与新存储路径要一起验证。
远端副本也需要做一次恢复
对象存储里的一个在线副本,可能随着同步删除或凭据误用而丢失。按服务能力安排版本保留、独立备份或删除保护,先确认它能覆盖自己的误删场景,再依赖它。
备份任务成功后,在新的目录或隔离机器恢复一组文件,校验校验和,并用对应数据库副本打开应用。版本记录、下载到的文件和数据库要能对应;恢复验证通过后再决定是否清理旧磁盘。