---
source: "https://weapp.eteams.cn/build/techdoc/wdoc/index.html#/public/doc/5288cfc8-aab2-416c-8e5d-b8a841f2972e"
publicId: "5288cfc8-aab2-416c-8e5d-b8a841f2972e"
---

# 本地存储到对象存储-针对租户迁移

### 一、获取租户中待迁移本地存储根目录

流程：后台管理中心 → 文件设置  → 选取待迁移的存储实例 → 获取存储根目录

![CleanShot 2025-04-08 at 10.36.32.gif](https://weapp.eteams.cn/api/file/preview?fileId=1120470582924165167&type=imgs)

### 二、租户切换到对象存储

> 对象存储实例需要到后台管理中心 → 文件设置 →  存储设置 → 存储实例中手动创建

步骤：后台管理中心 → 文件设置 → 存储设置 → 存储规则 → 默认存储规则绑定到正确的对象存储实例

![CleanShot 2025-04-08 at 10.42.59.gif](https://weapp.eteams.cn/api/file/preview?fileId=1120472374076522521&type=imgs)

### 三、迁移物理文件到对象存储

> - 将本地存储根路径下所有物理文件，在保持目录结构不变的情况下，使用对应工具迁移到对象存储中

#### a. 华为云

华为云官方操作文档：[https://support.huaweicloud.com/bestpractice-obs/obs\_05\_0110.html](https://support.huaweicloud.com/bestpractice-obs/obs_05_0110.html)

#### b. 阿里云

阿里云官方操作文档：[https://help.aliyun.com/zh/nas/user-guide/migrate-data-between-a-nas-file-system-and-an-oss-bucket?spm=a2c4g.11186623.help-menu-27516.d\_2\_1\_1.608aac7aQdIHmq](https://help.aliyun.com/zh/nas/user-guide/migrate-data-between-a-nas-file-system-and-an-oss-bucket?spm=a2c4g.11186623.help-menu-27516.d_2_1_1.608aac7aQdIHmq)

#### c. 腾讯云

腾讯云官方操作文档：[https://cloud.tencent.com/document/practice/436/38224?from=copy](https://cloud.tencent.com/document/practice/436/38224?from=copy)

#### d. s3通用云存储

请根据所使用的对象存储厂商提供的迁移方案进行操作

如果对象存储厂商没有提供图形化迁移工具，可以使用第三方客户端工具操作：[s3 browser](https://s3browser.com)

### 

### 四、刷新表数据

#### a. 获取租户最新存储规则版本ID（**latestVersionId**）

1. 步骤：后台管理中心 → 文件设置 → 存储设置 → 存储规则 → 打开浏览器F12查看接口 → 编辑默认存储规则触发接口请求 → 获取存储规则版本ID

![CleanShot 2025-04-08 at 10.58.55.gif](https://weapp.eteams.cn/api/file/preview?fileId=1120476333876985883&type=imgs)

F12需要查看的接口和返回值中的字段

```http
api/file/storage/rule/frontComp/ruleForm
```

![image.png](https://weapp.eteams.cn/api/file/preview?fileId=1120476398397743182&type=imgs)

#### b. 执行脚本

> - 从a中获取到的latestVersionId,用于替换下面脚本中${ruleVersionId}占位符
> - 下述sql中的#{1}占位符表示根据 【一、获取租户中待迁移本地存储根目录】获取到的根路径

a. oracle

```sql

UPDATE file_storage_info
SET file_path = SUBSTR(file_path, LENGTH('#{1}') + 1, LENGTH(file_path)),rule_version_id = ${ruleVersionId}
WHERE file_path LIKE '#{1}%';
```

b. mysql

```sql
UPDATE file_storage_info
SET file_path = SUBSTRING(file_path, LENGTH('#{1}') + 1),rule_version_id = ${ruleVersionId}
WHERE file_path LIKE '#{1}%';
```

c. sqlserver

```sql
UPDATE file_storage_info
SET file_path = SUBSTRING(CAST(file_path AS NVARCHAR(MAX)), LEN('#{1}') + 1, LEN(CAST(file_path AS NVARCHAR(MAX)))),
rule_version_id = ${ruleVersionId}
WHERE file_path LIKE '#{1}%';
```

d. postgresql

```sql
UPDATE file_storage_info
SET file_path = SUBSTR(file_path, LENGTH('#{1}') + 1, LENGTH(file_path)),rule_version_id = ${ruleVersionId}
WHERE file_path LIKE '#{1}%';
```

### 五、迁移示例

#### （1）迁移到E10中的本地存储E9附件迁移到阿里云

1. 通过【一、获取租户中待迁移本地存储根目录】查询名为 【e9本地存储】的实例信息，得到根目录：/home/e9/data
2. 通过阿里云官方工具，将服务器中/home/e9/data下所有文件，保持目录结构不变，全量迁移到阿里云中
3. 租户默认存储规则绑定到阿里云存储实例，阿里云存储实例如果不存在，就在后台管理中心 → 文件设置 → 存储设置 → 存储实例中创建一个
4. 触发编辑默认存储规则，通过浏览器f12，查看api/file/storage/rule/frontComp/ruleForm接口，获取到租户当前最新的默认存储规则版本ID，lastestVersionId: 1120471910145138690
5. 假设数据库是mysql，执行以下刷新数据sql
  
  ```sql
  # mysql
  UPDATE file_storage_info
  SET file_path = SUBSTRING(file_path, LENGTH('/home/e9/data') + 1),rule_version_id = 1120471910145138690
  WHERE file_path LIKE '/home/e9/data%';
  ```

####
