diff --git a/DEVELOPER_DOCS/images/download-file.png b/DEVELOPER_DOCS/images/download-file.png
new file mode 100644
index 0000000000000000000000000000000000000000..cb1f088d0cb2334a05a6d959b6fac9f252fdd032
Binary files /dev/null and b/DEVELOPER_DOCS/images/download-file.png differ
diff --git a/DEVELOPER_DOCS/images/upstream-source.png b/DEVELOPER_DOCS/images/upstream-source.png
new file mode 100644
index 0000000000000000000000000000000000000000..9ab63fb97868fd231d96fcecdf9f92f1d95875ba
Binary files /dev/null and b/DEVELOPER_DOCS/images/upstream-source.png differ
diff --git a/DEVELOPER_DOCS/menu.yaml b/DEVELOPER_DOCS/menu.yaml
index 1659af181b3ca1adcc07f195d452fca5d47caa3d..ce699e996397c84e408d4747a7e2269a0ce677c4 100644
--- a/DEVELOPER_DOCS/menu.yaml
+++ b/DEVELOPER_DOCS/menu.yaml
@@ -22,6 +22,7 @@ DEVELOPER_DOCS:
让你的代码更快被接受的N个建议: ../基础开发/207-how-to-get-codes-merged.md
使用ABS平台轻松胜任Anolis OS开发工作: ../基础开发/208-how-to-build-package-via-ABS.md
进阶开发:
+ 如何下载 Anolis OS 软件包源码包: ../进阶开发/如何下载 Anolis OS 软件包源码包.md
Review 代码指南: ../进阶开发/301-join-code-review.md
发行版构建指南: ../进阶开发/302-join-os-package-build.md
内核研发指南: ../进阶开发/303-join-kernel-developing.md
diff --git "a/DEVELOPER_DOCS/\350\277\233\351\230\266\345\274\200\345\217\221/\345\246\202\344\275\225\344\270\213\350\275\275 Anolis OS \350\275\257\344\273\266\345\214\205\346\272\220\347\240\201\345\214\205.md" "b/DEVELOPER_DOCS/\350\277\233\351\230\266\345\274\200\345\217\221/\345\246\202\344\275\225\344\270\213\350\275\275 Anolis OS \350\275\257\344\273\266\345\214\205\346\272\220\347\240\201\345\214\205.md"
new file mode 100644
index 0000000000000000000000000000000000000000..033235c0b2714cda7106e4c2b54ea2791bbabe55
--- /dev/null
+++ "b/DEVELOPER_DOCS/\350\277\233\351\230\266\345\274\200\345\217\221/\345\246\202\344\275\225\344\270\213\350\275\275 Anolis OS \350\275\257\344\273\266\345\214\205\346\272\220\347\240\201\345\214\205.md"
@@ -0,0 +1,65 @@
+
+
+## 1. 背景
+由于部分软件包存在大文件导致上传失败、clone 过慢甚至失败的问题,影响软件包构建效率。在这种情况下,龙蜥社区选择使用专门的存储空间来解决大文件上传和下载问题。
+
+
+
+## 2. 原理
+将大文件存储在指定服务器,编译阶段下载代码后,根据其中的 download 文件内容下载大文件。
+
+
+
+## 3. 修改过程
+### 3.1 大文件处理
+将大文件重命名为:{原文件名}.{MD5值},并将其存储在指定服务器路径。
+
+```shell
+~]# md5sum firefox-langpacks-91.6.0esr-20220202.tar.xz
+a337296ea097eb6ebf155f2a417ba8d0 firefox-langpacks-91.6.0esr-20220202.tar.xz
+~]# mv firefox-langpacks-91.6.0esr-20220202.tar.xz firefox-langpacks-91.6.0esr-20220202.tar.xz.a337296ea097eb6ebf155f2a417ba8d0
+```
+
+### 3.2 download 文件处理
+代码仓内增加 download 文件,内部配置内容为:{MD5值} {修改后的文件名}。
+
+```shell
+~]# curl https://gitee.com/src-anolis-os/firefox/raw/a8/download
+9030c1f285ee079a4c386e525e57a2b1 cbindgen-vendor.tar.xz
+a130eff8558c46cad9d5ad957ec16a7b firefox-91.7.0esr.processed-source.tar.xz
+499f3d8cf3e7ca16a61bda6e49cbf4fc firefox-langpacks-91.7.0esr-20220307.tar.xz
+5b7e3326f4484ce1ab685e74f8477a26 nspr-4.32.0-1.el8_1.src.rpm
+770fbbfb259e656b8f3879934137d10c nss-3.67.0-7.el8_1.src.rpm
+```
+
+### 3.3 历史 commit 处理
+对于历史 commit 可通过 git rebase --root -i 进行修改,将历史大文件按照上述方式迁移至指定服务器。
+
+
+
+## 4. 常见问题
+### 4.1 如何下载对应软件包?
+通过 download 文件中的 MD5 值对软件包进行查询,并于 [upstream-source](http://build.openanolis.cn/kojifiles/upstream-source/) 下载。
+
+如:根据 firefox 中的 [download 文件](https://gitee.com/src-anolis-os/firefox/blob/2d66a88a05d3c46fedd8c73cb0d788bbcf5d5815/download#L5)内容,可查询到该版本中使用到的 nss srpm 软件包 MD5 值为** **770fbbfb259e656b8f3879934137d10c,并通过如下链接进行下载:
+
+[http://build.openanolis.cn/kojifiles/upstream-source/nss-3.67.0-7.el8_1.src.rpm.770fbbfb259e656b8f3879934137d10c](http://build.openanolis.cn/kojifiles/upstream-source/nss-3.67.0-7.el8_1.src.rpm.770fbbfb259e656b8f3879934137d10c)
+
+
+
+
+
+
+
+### 4.2 若无软件包该如何进行本地 rpmbuild 构建?
+可根据上一步骤,根据 download 文件下载对应文件后重试。
+
+```shell
+upstream_source="http://build.openanolis.cn/kojifiles/upstream-source"
+while read line; do
+ md5_sum=$(echo $line|awk '{print $1}')
+ rpm_file=$(echo $line|awk '{print $2}')
+ wget ${upstream_source}/${rpm_file}.${md5_sum} -O ${rpm_file}
+done < download
+```
+