<?xml version="1.0" encoding="utf-8"?>
<?xml-stylesheet type="text/xsl" href="../assets/xml/rss.xsl" media="all"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>影子屋 (文章分类：S3)</title><link>https://blog.bgme.me/</link><description></description><atom:link href="https://blog.bgme.me/categories/s3.xml" rel="self" type="application/rss+xml"></atom:link><language>zh_cn</language><copyright>Contents © 2024 &lt;a href="mailto:i@bgme.me"&gt;无影人&lt;/a&gt; 
&lt;a rel="license noopener nofollow" target="_blank" href="http://creativecommons.org/licenses/by-sa/4.0/" class="ui image" title="如无特别说明，本站文章均遵循 CC BY-SA 4.0 协议，转载请注明作者及出处。"&gt;
&lt;img alt="Creative Commons Attribution-ShareAlike 4.0 International License" src="/license.png"&gt;
&lt;/a&gt;
</copyright><lastBuildDate>Wed, 24 Apr 2024 12:02:14 GMT</lastBuildDate><generator>Nikola (getnikola.com)</generator><docs>http://blogs.law.harvard.edu/tech/rss</docs><item><title>Matrix踩坑记之 matrix-media-repo</title><link>https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/</link><dc:creator>无影人</dc:creator><description>&lt;p&gt;本地媒体越积越多，服务器空闲空间越来越少，这可不行。&lt;/p&gt;
&lt;p&gt;于是该 &lt;a class="reference external" href="https://github.com/turt2live/matrix-media-repo"&gt;matrix-media-repo&lt;/a&gt; 出场。&lt;/p&gt;
&lt;p&gt;使用 matrix-media-repo 将媒体文件存储移至 S3 Storage。&lt;/p&gt;
&lt;!-- TEASER_END --&gt;
&lt;section id="matrix-media-repo-1"&gt;
&lt;h2&gt;安装 matrix-media-repo&lt;/h2&gt;
&lt;div class="code"&gt;&lt;pre class="code bash"&gt;&lt;a id="rest_code_d5321eb9bddf4ddc8c68859f47ddee70-1" name="rest_code_d5321eb9bddf4ddc8c68859f47ddee70-1" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_d5321eb9bddf4ddc8c68859f47ddee70-1"&gt;&lt;/a&gt;&lt;span class="ch"&gt;#!/bin/bash&lt;/span&gt;
&lt;a id="rest_code_d5321eb9bddf4ddc8c68859f47ddee70-2" name="rest_code_d5321eb9bddf4ddc8c68859f47ddee70-2" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_d5321eb9bddf4ddc8c68859f47ddee70-2"&gt;&lt;/a&gt;
&lt;a id="rest_code_d5321eb9bddf4ddc8c68859f47ddee70-3" name="rest_code_d5321eb9bddf4ddc8c68859f47ddee70-3" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_d5321eb9bddf4ddc8c68859f47ddee70-3"&gt;&lt;/a&gt;&lt;span class="nv"&gt;version&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="nv"&gt;$1&lt;/span&gt;
&lt;a id="rest_code_d5321eb9bddf4ddc8c68859f47ddee70-4" name="rest_code_d5321eb9bddf4ddc8c68859f47ddee70-4" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_d5321eb9bddf4ddc8c68859f47ddee70-4"&gt;&lt;/a&gt;&lt;span class="nv"&gt;TMP&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="k"&gt;$(&lt;/span&gt;mktemp&lt;span class="k"&gt;)&lt;/span&gt;
&lt;a id="rest_code_d5321eb9bddf4ddc8c68859f47ddee70-5" name="rest_code_d5321eb9bddf4ddc8c68859f47ddee70-5" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_d5321eb9bddf4ddc8c68859f47ddee70-5"&gt;&lt;/a&gt;
&lt;a id="rest_code_d5321eb9bddf4ddc8c68859f47ddee70-6" name="rest_code_d5321eb9bddf4ddc8c68859f47ddee70-6" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_d5321eb9bddf4ddc8c68859f47ddee70-6"&gt;&lt;/a&gt;mkdir&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$TMP&lt;/span&gt;
&lt;a id="rest_code_d5321eb9bddf4ddc8c68859f47ddee70-7" name="rest_code_d5321eb9bddf4ddc8c68859f47ddee70-7" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_d5321eb9bddf4ddc8c68859f47ddee70-7"&gt;&lt;/a&gt;&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$TMP&lt;/span&gt;
&lt;a id="rest_code_d5321eb9bddf4ddc8c68859f47ddee70-8" name="rest_code_d5321eb9bddf4ddc8c68859f47ddee70-8" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_d5321eb9bddf4ddc8c68859f47ddee70-8"&gt;&lt;/a&gt;wget&lt;span class="w"&gt; &lt;/span&gt;https://github.com/turt2live/matrix-media-repo/releases/download/&lt;span class="nv"&gt;$version&lt;/span&gt;/media_repo-linux-x64&lt;span class="w"&gt; &lt;/span&gt;-O&lt;span class="w"&gt; &lt;/span&gt;media_repo
&lt;a id="rest_code_d5321eb9bddf4ddc8c68859f47ddee70-9" name="rest_code_d5321eb9bddf4ddc8c68859f47ddee70-9" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_d5321eb9bddf4ddc8c68859f47ddee70-9"&gt;&lt;/a&gt;wget&lt;span class="w"&gt; &lt;/span&gt;https://github.com/turt2live/matrix-media-repo/releases/download/&lt;span class="nv"&gt;$version&lt;/span&gt;/import_synapse-linux-x64&lt;span class="w"&gt; &lt;/span&gt;-O&lt;span class="w"&gt; &lt;/span&gt;import_synapse
&lt;a id="rest_code_d5321eb9bddf4ddc8c68859f47ddee70-10" name="rest_code_d5321eb9bddf4ddc8c68859f47ddee70-10" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_d5321eb9bddf4ddc8c68859f47ddee70-10"&gt;&lt;/a&gt;
&lt;a id="rest_code_d5321eb9bddf4ddc8c68859f47ddee70-11" name="rest_code_d5321eb9bddf4ddc8c68859f47ddee70-11" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_d5321eb9bddf4ddc8c68859f47ddee70-11"&gt;&lt;/a&gt;cp&lt;span class="w"&gt; &lt;/span&gt;media_repo&lt;span class="w"&gt; &lt;/span&gt;import_synapse&lt;span class="w"&gt; &lt;/span&gt;/usr/local/bin/
&lt;a id="rest_code_d5321eb9bddf4ddc8c68859f47ddee70-12" name="rest_code_d5321eb9bddf4ddc8c68859f47ddee70-12" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_d5321eb9bddf4ddc8c68859f47ddee70-12"&gt;&lt;/a&gt;
&lt;a id="rest_code_d5321eb9bddf4ddc8c68859f47ddee70-13" name="rest_code_d5321eb9bddf4ddc8c68859f47ddee70-13" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_d5321eb9bddf4ddc8c68859f47ddee70-13"&gt;&lt;/a&gt;&lt;span class="nb"&gt;cd&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;/usr/local/bin/
&lt;a id="rest_code_d5321eb9bddf4ddc8c68859f47ddee70-14" name="rest_code_d5321eb9bddf4ddc8c68859f47ddee70-14" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_d5321eb9bddf4ddc8c68859f47ddee70-14"&gt;&lt;/a&gt;chmod&lt;span class="w"&gt; &lt;/span&gt;+x&lt;span class="w"&gt; &lt;/span&gt;media_repo&lt;span class="w"&gt; &lt;/span&gt;import_synapse
&lt;a id="rest_code_d5321eb9bddf4ddc8c68859f47ddee70-15" name="rest_code_d5321eb9bddf4ddc8c68859f47ddee70-15" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_d5321eb9bddf4ddc8c68859f47ddee70-15"&gt;&lt;/a&gt;
&lt;a id="rest_code_d5321eb9bddf4ddc8c68859f47ddee70-16" name="rest_code_d5321eb9bddf4ddc8c68859f47ddee70-16" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_d5321eb9bddf4ddc8c68859f47ddee70-16"&gt;&lt;/a&gt;rm&lt;span class="w"&gt; &lt;/span&gt;-r&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nv"&gt;$TMP&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;将上述内容保存为 &lt;code class="docutils literal"&gt;&lt;span class="pre"&gt;install-matrix-media-repo.sh&lt;/span&gt;&lt;/code&gt;。&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code bash"&gt;&lt;a id="rest_code_dd63dddff1af40e88eef1aea087e2ed0-1" name="rest_code_dd63dddff1af40e88eef1aea087e2ed0-1" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_dd63dddff1af40e88eef1aea087e2ed0-1"&gt;&lt;/a&gt;&lt;span class="c1"&gt;# 参数为 matrix-media-repo 最新版版本号&lt;/span&gt;
&lt;a id="rest_code_dd63dddff1af40e88eef1aea087e2ed0-2" name="rest_code_dd63dddff1af40e88eef1aea087e2ed0-2" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_dd63dddff1af40e88eef1aea087e2ed0-2"&gt;&lt;/a&gt;bash&lt;span class="w"&gt; &lt;/span&gt;install-matrix-media-repo.sh&lt;span class="w"&gt;  &lt;/span&gt;v1.2.8
&lt;/pre&gt;&lt;/div&gt;
&lt;/section&gt;
&lt;section id="matrix-media-repo-2"&gt;
&lt;h2&gt;配置 matrix-media-repo&lt;/h2&gt;
&lt;section id="section-1"&gt;
&lt;h3&gt;创建数据库&lt;/h3&gt;
&lt;div class="code"&gt;&lt;pre class="code bash"&gt;&lt;a id="rest_code_b45fad8b31ea4e64ad58873bdb23849e-1" name="rest_code_b45fad8b31ea4e64ad58873bdb23849e-1" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_b45fad8b31ea4e64ad58873bdb23849e-1"&gt;&lt;/a&gt;sudo&lt;span class="w"&gt; &lt;/span&gt;-u&lt;span class="w"&gt; &lt;/span&gt;postgres&lt;span class="w"&gt; &lt;/span&gt;createuser&lt;span class="w"&gt; &lt;/span&gt;--pwprompt&lt;span class="w"&gt; &lt;/span&gt;matrix_media
&lt;/pre&gt;&lt;/div&gt;
&lt;div class="code"&gt;&lt;pre class="code bash"&gt;&lt;a id="rest_code_a1cb574a2c9342cfa09dc5ec9644cb8b-1" name="rest_code_a1cb574a2c9342cfa09dc5ec9644cb8b-1" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_a1cb574a2c9342cfa09dc5ec9644cb8b-1"&gt;&lt;/a&gt;sudo&lt;span class="w"&gt; &lt;/span&gt;-u&lt;span class="w"&gt; &lt;/span&gt;postgres&lt;span class="w"&gt; &lt;/span&gt;psql
&lt;/pre&gt;&lt;/div&gt;
&lt;div class="code"&gt;&lt;pre class="code sql"&gt;&lt;a id="rest_code_9de2262e5e2744d081c60e0e7c2b9e6c-1" name="rest_code_9de2262e5e2744d081c60e0e7c2b9e6c-1" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_9de2262e5e2744d081c60e0e7c2b9e6c-1"&gt;&lt;/a&gt;&lt;span class="k"&gt;CREATE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="k"&gt;DATABASE&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;matrix_media_repo&lt;/span&gt;
&lt;a id="rest_code_9de2262e5e2744d081c60e0e7c2b9e6c-2" name="rest_code_9de2262e5e2744d081c60e0e7c2b9e6c-2" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_9de2262e5e2744d081c60e0e7c2b9e6c-2"&gt;&lt;/a&gt;&lt;span class="k"&gt;ENCODING&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s1"&gt;'UTF8'&lt;/span&gt;
&lt;a id="rest_code_9de2262e5e2744d081c60e0e7c2b9e6c-3" name="rest_code_9de2262e5e2744d081c60e0e7c2b9e6c-3" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_9de2262e5e2744d081c60e0e7c2b9e6c-3"&gt;&lt;/a&gt;&lt;span class="n"&gt;LC_COLLATE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'C'&lt;/span&gt;
&lt;a id="rest_code_9de2262e5e2744d081c60e0e7c2b9e6c-4" name="rest_code_9de2262e5e2744d081c60e0e7c2b9e6c-4" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_9de2262e5e2744d081c60e0e7c2b9e6c-4"&gt;&lt;/a&gt;&lt;span class="n"&gt;LC_CTYPE&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="s1"&gt;'C'&lt;/span&gt;
&lt;a id="rest_code_9de2262e5e2744d081c60e0e7c2b9e6c-5" name="rest_code_9de2262e5e2744d081c60e0e7c2b9e6c-5" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_9de2262e5e2744d081c60e0e7c2b9e6c-5"&gt;&lt;/a&gt;&lt;span class="k"&gt;template&lt;/span&gt;&lt;span class="o"&gt;=&lt;/span&gt;&lt;span class="n"&gt;template0&lt;/span&gt;
&lt;a id="rest_code_9de2262e5e2744d081c60e0e7c2b9e6c-6" name="rest_code_9de2262e5e2744d081c60e0e7c2b9e6c-6" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_9de2262e5e2744d081c60e0e7c2b9e6c-6"&gt;&lt;/a&gt;&lt;span class="k"&gt;OWNER&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="n"&gt;matrix_media&lt;/span&gt;&lt;span class="p"&gt;;&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;/section&gt;
&lt;section id="section-2"&gt;
&lt;h3&gt;创建配置文件&lt;/h3&gt;
&lt;p&gt;参考&lt;a class="reference external" href="https://github.com/turt2live/matrix-media-repo/blob/master/config.sample.yaml"&gt;配置文件模板&lt;/a&gt;及&lt;a class="reference external" href="https://docs.t2bot.io/matrix-media-repo/intro.html"&gt;文档&lt;/a&gt;创建配置文件。&lt;/p&gt;
&lt;p&gt;本人配置文件：&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code yaml"&gt;&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-1" name="rest_code_808c64376b344616bd0f52b80a792e54-1" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-1"&gt;&lt;/a&gt;&lt;span class="nt"&gt;repo&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-2" name="rest_code_808c64376b344616bd0f52b80a792e54-2" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-2"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;bindAddress&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;'127.0.0.1'&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-3" name="rest_code_808c64376b344616bd0f52b80a792e54-3" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-3"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;port&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;18400&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-4" name="rest_code_808c64376b344616bd0f52b80a792e54-4" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-4"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;logDirectory&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;"-"&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-5" name="rest_code_808c64376b344616bd0f52b80a792e54-5" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-5"&gt;&lt;/a&gt;&lt;span class="nt"&gt;database&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-6" name="rest_code_808c64376b344616bd0f52b80a792e54-6" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-6"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;postgres&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;"postgres://matrix_media:&amp;lt;redacted&amp;gt;@localhost/matrix_media_repo"&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-7" name="rest_code_808c64376b344616bd0f52b80a792e54-7" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-7"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;pool&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-8" name="rest_code_808c64376b344616bd0f52b80a792e54-8" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-8"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nt"&gt;maxConnections&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;25&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-9" name="rest_code_808c64376b344616bd0f52b80a792e54-9" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-9"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nt"&gt;maxIdleConnections&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;5&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-10" name="rest_code_808c64376b344616bd0f52b80a792e54-10" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-10"&gt;&lt;/a&gt;&lt;span class="nt"&gt;homeservers&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-11" name="rest_code_808c64376b344616bd0f52b80a792e54-11" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-11"&gt;&lt;/a&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="c1"&gt;# 特别提醒，此处 name 一定要与 Synapse homeserver 的 serverName 一致&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-12" name="rest_code_808c64376b344616bd0f52b80a792e54-12" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-12"&gt;&lt;/a&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="c1"&gt;# 即如果你的用户ID形如：@bgme:bgme.me ，那么此处应当填写 bgme.me&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-13" name="rest_code_808c64376b344616bd0f52b80a792e54-13" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-13"&gt;&lt;/a&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="c1"&gt;# 使用 Delegation 的用户尤其应当注意&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-14" name="rest_code_808c64376b344616bd0f52b80a792e54-14" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-14"&gt;&lt;/a&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="p p-Indicator"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;name&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;bgme.me&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-15" name="rest_code_808c64376b344616bd0f52b80a792e54-15" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-15"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;csApi&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;"http://localhost:8008"&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-16" name="rest_code_808c64376b344616bd0f52b80a792e54-16" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-16"&gt;&lt;/a&gt;&lt;span class="nt"&gt;admins&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-17" name="rest_code_808c64376b344616bd0f52b80a792e54-17" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-17"&gt;&lt;/a&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="p p-Indicator"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;"@bgme:bgme.me"&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-18" name="rest_code_808c64376b344616bd0f52b80a792e54-18" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-18"&gt;&lt;/a&gt;&lt;span class="nt"&gt;datastores&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-19" name="rest_code_808c64376b344616bd0f52b80a792e54-19" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-19"&gt;&lt;/a&gt;&lt;span class="w"&gt;  &lt;/span&gt;&lt;span class="p p-Indicator"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;type&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;s3&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-20" name="rest_code_808c64376b344616bd0f52b80a792e54-20" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-20"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;enabled&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;true&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-21" name="rest_code_808c64376b344616bd0f52b80a792e54-21" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-21"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;forKinds&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p p-Indicator"&gt;[&lt;/span&gt;&lt;span class="s"&gt;"all"&lt;/span&gt;&lt;span class="p p-Indicator"&gt;]&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-22" name="rest_code_808c64376b344616bd0f52b80a792e54-22" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-22"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;opts&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-23" name="rest_code_808c64376b344616bd0f52b80a792e54-23" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-23"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nt"&gt;tempPath&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;"/tmp/mediarepo_s3_upload"&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-24" name="rest_code_808c64376b344616bd0f52b80a792e54-24" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-24"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nt"&gt;endpoint&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;&amp;lt;redacted&amp;gt;&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-25" name="rest_code_808c64376b344616bd0f52b80a792e54-25" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-25"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nt"&gt;accessKeyId&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;"&amp;lt;redacted&amp;gt;"&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-26" name="rest_code_808c64376b344616bd0f52b80a792e54-26" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-26"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nt"&gt;accessSecret&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;"&amp;lt;redacted&amp;gt;"&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-27" name="rest_code_808c64376b344616bd0f52b80a792e54-27" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-27"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nt"&gt;ssl&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;true&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-28" name="rest_code_808c64376b344616bd0f52b80a792e54-28" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-28"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nt"&gt;bucketName&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;"&amp;lt;redacted&amp;gt;"&lt;/span&gt;&lt;span class="w"&gt;                                                                                                                                                         &lt;/span&gt;&lt;span class="nt"&gt;region&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;"eu-central-1"&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-29" name="rest_code_808c64376b344616bd0f52b80a792e54-29" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-29"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nt"&gt;region&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;"&amp;lt;redacted&amp;gt;"&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-30" name="rest_code_808c64376b344616bd0f52b80a792e54-30" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-30"&gt;&lt;/a&gt;&lt;span class="nt"&gt;accessTokens&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt;                                                                                                                                                                        &lt;/span&gt;&lt;span class="p p-Indicator"&gt;[&lt;/span&gt;&lt;span class="nv"&gt;3/1816&lt;/span&gt;&lt;span class="p p-Indicator"&gt;]&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-31" name="rest_code_808c64376b344616bd0f52b80a792e54-31" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-31"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;maxCacheTimeSeconds&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;43200&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-32" name="rest_code_808c64376b344616bd0f52b80a792e54-32" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-32"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;useLocalAppserviceConfig&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;true&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-33" name="rest_code_808c64376b344616bd0f52b80a792e54-33" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-33"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;appservices&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-34" name="rest_code_808c64376b344616bd0f52b80a792e54-34" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-34"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="p p-Indicator"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;id&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;telegram&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-35" name="rest_code_808c64376b344616bd0f52b80a792e54-35" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-35"&gt;&lt;/a&gt;&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;as_token&lt;/span&gt;&lt;span class="p p-Indicator"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;&amp;lt;redacted&amp;gt;&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-36" name="rest_code_808c64376b344616bd0f52b80a792e54-36" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-36"&gt;&lt;/a&gt;&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;senderUserId&lt;/span&gt;&lt;span class="p p-Indicator"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;"@telegrambot:bgme.me"&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-37" name="rest_code_808c64376b344616bd0f52b80a792e54-37" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-37"&gt;&lt;/a&gt;&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="nt"&gt;userNamespaces&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-38" name="rest_code_808c64376b344616bd0f52b80a792e54-38" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-38"&gt;&lt;/a&gt;&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="p p-Indicator"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;regex&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;"@telegram_.+:bgme.me"&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-39" name="rest_code_808c64376b344616bd0f52b80a792e54-39" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-39"&gt;&lt;/a&gt;&lt;span class="nt"&gt;thumbnails&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-40" name="rest_code_808c64376b344616bd0f52b80a792e54-40" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-40"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;maxSourceBytes&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;10485760&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-41" name="rest_code_808c64376b344616bd0f52b80a792e54-41" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-41"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;maxPixels&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;32000000&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-42" name="rest_code_808c64376b344616bd0f52b80a792e54-42" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-42"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;numWorkers&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;100&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-43" name="rest_code_808c64376b344616bd0f52b80a792e54-43" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-43"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;sizes&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-44" name="rest_code_808c64376b344616bd0f52b80a792e54-44" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-44"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="p p-Indicator"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;32&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-45" name="rest_code_808c64376b344616bd0f52b80a792e54-45" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-45"&gt;&lt;/a&gt;&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;height&lt;/span&gt;&lt;span class="p p-Indicator"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;32&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-46" name="rest_code_808c64376b344616bd0f52b80a792e54-46" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-46"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="p p-Indicator"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;96&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-47" name="rest_code_808c64376b344616bd0f52b80a792e54-47" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-47"&gt;&lt;/a&gt;&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;height&lt;/span&gt;&lt;span class="p p-Indicator"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;96&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-48" name="rest_code_808c64376b344616bd0f52b80a792e54-48" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-48"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="p p-Indicator"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;320&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-49" name="rest_code_808c64376b344616bd0f52b80a792e54-49" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-49"&gt;&lt;/a&gt;&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;height&lt;/span&gt;&lt;span class="p p-Indicator"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;240&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-50" name="rest_code_808c64376b344616bd0f52b80a792e54-50" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-50"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="p p-Indicator"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;640&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-51" name="rest_code_808c64376b344616bd0f52b80a792e54-51" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-51"&gt;&lt;/a&gt;&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;height&lt;/span&gt;&lt;span class="p p-Indicator"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;480&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-52" name="rest_code_808c64376b344616bd0f52b80a792e54-52" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-52"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="p p-Indicator"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;768&lt;/span&gt;&lt;span class="w"&gt;   &lt;/span&gt;&lt;span class="c1"&gt;# This size is primarily used for audio thumbnailing.&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-53" name="rest_code_808c64376b344616bd0f52b80a792e54-53" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-53"&gt;&lt;/a&gt;&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="nt"&gt;height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;240&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-54" name="rest_code_808c64376b344616bd0f52b80a792e54-54" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-54"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="p p-Indicator"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nt"&gt;width&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;800&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-55" name="rest_code_808c64376b344616bd0f52b80a792e54-55" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-55"&gt;&lt;/a&gt;&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;height&lt;/span&gt;&lt;span class="p p-Indicator"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;600&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-56" name="rest_code_808c64376b344616bd0f52b80a792e54-56" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-56"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;dynamicSizing&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;true&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-57" name="rest_code_808c64376b344616bd0f52b80a792e54-57" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-57"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;types&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-58" name="rest_code_808c64376b344616bd0f52b80a792e54-58" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-58"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="p p-Indicator"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;"image/jpeg"&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-59" name="rest_code_808c64376b344616bd0f52b80a792e54-59" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-59"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="p p-Indicator"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;"image/jpg"&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-60" name="rest_code_808c64376b344616bd0f52b80a792e54-60" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-60"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="p p-Indicator"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;"image/png"&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-61" name="rest_code_808c64376b344616bd0f52b80a792e54-61" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-61"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="p p-Indicator"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;"image/apng"&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-62" name="rest_code_808c64376b344616bd0f52b80a792e54-62" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-62"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="p p-Indicator"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;"image/gif"&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-63" name="rest_code_808c64376b344616bd0f52b80a792e54-63" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-63"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="p p-Indicator"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;"image/heif"&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-64" name="rest_code_808c64376b344616bd0f52b80a792e54-64" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-64"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="p p-Indicator"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;"image/webp"&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-65" name="rest_code_808c64376b344616bd0f52b80a792e54-65" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-65"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="p p-Indicator"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;"image/svg+xml"&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-66" name="rest_code_808c64376b344616bd0f52b80a792e54-66" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-66"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="p p-Indicator"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;"audio/mpeg"&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-67" name="rest_code_808c64376b344616bd0f52b80a792e54-67" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-67"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="p p-Indicator"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;"audio/ogg"&lt;/span&gt;&lt;span class="w"&gt;                                                                                                                                                                                &lt;/span&gt;&lt;span class="err"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;"audio/wav"&lt;/span&gt;&lt;span class="w"&gt;                                                                                                                                                                                &lt;/span&gt;&lt;span class="err"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;"audio/flac"&lt;/span&gt;&lt;span class="w"&gt;                                                                                                                                                                               &lt;/span&gt;&lt;span class="err"&gt;-&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s"&gt;"video/mp4"&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-68" name="rest_code_808c64376b344616bd0f52b80a792e54-68" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-68"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;allowAnimated&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;true&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-69" name="rest_code_808c64376b344616bd0f52b80a792e54-69" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-69"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;defaultAnimated&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;false&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-70" name="rest_code_808c64376b344616bd0f52b80a792e54-70" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-70"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;maxAnimateSizeBytes&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;10485760&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-71" name="rest_code_808c64376b344616bd0f52b80a792e54-71" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-71"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;stillFrame&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;0.5&lt;/span&gt;
&lt;a id="rest_code_808c64376b344616bd0f52b80a792e54-72" name="rest_code_808c64376b344616bd0f52b80a792e54-72" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_808c64376b344616bd0f52b80a792e54-72"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;expireAfterDays&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="l l-Scalar l-Scalar-Plain"&gt;0&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;将配置文件写入 &lt;code class="docutils literal"&gt;&lt;span class="pre"&gt;/etc/matrix-media-repo/config.yaml&lt;/span&gt;&lt;/code&gt; 。&lt;/p&gt;
&lt;/section&gt;
&lt;section id="section-3"&gt;
&lt;h3&gt;安装依赖&lt;/h3&gt;
&lt;div class="code"&gt;&lt;pre class="code bash"&gt;&lt;a id="rest_code_4c0730042b71409f8b1bffecee237779-1" name="rest_code_4c0730042b71409f8b1bffecee237779-1" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_4c0730042b71409f8b1bffecee237779-1"&gt;&lt;/a&gt;apt&lt;span class="w"&gt; &lt;/span&gt;install&lt;span class="w"&gt; &lt;/span&gt;ffmpeg&lt;span class="w"&gt; &lt;/span&gt;imagemagick
&lt;/pre&gt;&lt;/div&gt;
&lt;/section&gt;
&lt;section id="systemd-service"&gt;
&lt;h3&gt;创建 systemd service&lt;/h3&gt;
&lt;div class="code"&gt;&lt;pre class="code text"&gt;&lt;a id="rest_code_45f7684c9f13492a840b14362d18a7c5-1" name="rest_code_45f7684c9f13492a840b14362d18a7c5-1" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_45f7684c9f13492a840b14362d18a7c5-1"&gt;&lt;/a&gt;# /etc/systemd/system/matrix-media-repo.service
&lt;a id="rest_code_45f7684c9f13492a840b14362d18a7c5-2" name="rest_code_45f7684c9f13492a840b14362d18a7c5-2" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_45f7684c9f13492a840b14362d18a7c5-2"&gt;&lt;/a&gt;[Unit]
&lt;a id="rest_code_45f7684c9f13492a840b14362d18a7c5-3" name="rest_code_45f7684c9f13492a840b14362d18a7c5-3" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_45f7684c9f13492a840b14362d18a7c5-3"&gt;&lt;/a&gt;Description=matrix-media-repo is a highly customizable multi-domain media repository for Matrix.
&lt;a id="rest_code_45f7684c9f13492a840b14362d18a7c5-4" name="rest_code_45f7684c9f13492a840b14362d18a7c5-4" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_45f7684c9f13492a840b14362d18a7c5-4"&gt;&lt;/a&gt;After=network.target
&lt;a id="rest_code_45f7684c9f13492a840b14362d18a7c5-5" name="rest_code_45f7684c9f13492a840b14362d18a7c5-5" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_45f7684c9f13492a840b14362d18a7c5-5"&gt;&lt;/a&gt;Wants=network.target
&lt;a id="rest_code_45f7684c9f13492a840b14362d18a7c5-6" name="rest_code_45f7684c9f13492a840b14362d18a7c5-6" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_45f7684c9f13492a840b14362d18a7c5-6"&gt;&lt;/a&gt;
&lt;a id="rest_code_45f7684c9f13492a840b14362d18a7c5-7" name="rest_code_45f7684c9f13492a840b14362d18a7c5-7" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_45f7684c9f13492a840b14362d18a7c5-7"&gt;&lt;/a&gt;[Service]
&lt;a id="rest_code_45f7684c9f13492a840b14362d18a7c5-8" name="rest_code_45f7684c9f13492a840b14362d18a7c5-8" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_45f7684c9f13492a840b14362d18a7c5-8"&gt;&lt;/a&gt;Type=simple
&lt;a id="rest_code_45f7684c9f13492a840b14362d18a7c5-9" name="rest_code_45f7684c9f13492a840b14362d18a7c5-9" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_45f7684c9f13492a840b14362d18a7c5-9"&gt;&lt;/a&gt;User=matrix-synapse
&lt;a id="rest_code_45f7684c9f13492a840b14362d18a7c5-10" name="rest_code_45f7684c9f13492a840b14362d18a7c5-10" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_45f7684c9f13492a840b14362d18a7c5-10"&gt;&lt;/a&gt;ExecStart=/usr/local/bin/media_repo -config /etc/matrix-media-repo/config.yaml
&lt;a id="rest_code_45f7684c9f13492a840b14362d18a7c5-11" name="rest_code_45f7684c9f13492a840b14362d18a7c5-11" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_45f7684c9f13492a840b14362d18a7c5-11"&gt;&lt;/a&gt;Restart=on-failure
&lt;a id="rest_code_45f7684c9f13492a840b14362d18a7c5-12" name="rest_code_45f7684c9f13492a840b14362d18a7c5-12" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_45f7684c9f13492a840b14362d18a7c5-12"&gt;&lt;/a&gt;
&lt;a id="rest_code_45f7684c9f13492a840b14362d18a7c5-13" name="rest_code_45f7684c9f13492a840b14362d18a7c5-13" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_45f7684c9f13492a840b14362d18a7c5-13"&gt;&lt;/a&gt;[Install]
&lt;a id="rest_code_45f7684c9f13492a840b14362d18a7c5-14" name="rest_code_45f7684c9f13492a840b14362d18a7c5-14" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_45f7684c9f13492a840b14362d18a7c5-14"&gt;&lt;/a&gt;WantedBy=multi-user.target
&lt;/pre&gt;&lt;/div&gt;
&lt;/section&gt;
&lt;/section&gt;
&lt;section id="section-4"&gt;
&lt;h2&gt;迁移现有媒体文件&lt;/h2&gt;
&lt;div class="code"&gt;&lt;pre class="code bash"&gt;&lt;a id="rest_code_ff57d1340f8c441ea35558489026fbb2-1" name="rest_code_ff57d1340f8c441ea35558489026fbb2-1" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_ff57d1340f8c441ea35558489026fbb2-1"&gt;&lt;/a&gt;import_synapse&lt;span class="w"&gt; &lt;/span&gt;-config&lt;span class="w"&gt; &lt;/span&gt;/etc/matrix-media-repo/config.yaml&lt;span class="w"&gt; &lt;/span&gt;-dbName&lt;span class="w"&gt; &lt;/span&gt;synapse&lt;span class="w"&gt; &lt;/span&gt;-dbUsername&lt;span class="w"&gt; &lt;/span&gt;synapse_user&lt;span class="w"&gt; &lt;/span&gt;-dbPassword&lt;span class="w"&gt; &lt;/span&gt;&amp;lt;redacted&amp;gt;&lt;span class="w"&gt; &lt;/span&gt;-serverName&lt;span class="w"&gt; &lt;/span&gt;bgme.me
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;运行如上命令，耐心等待迁移完成。&lt;/p&gt;
&lt;/section&gt;
&lt;section id="matrix-media-repo-3"&gt;
&lt;h2&gt;将流量导向 matrix-media-repo&lt;/h2&gt;
&lt;p&gt;nginx 可能参考 &lt;a class="reference external" href="https://docs.t2bot.io/matrix-media-repo/deployment/nginx.html"&gt;Example: nginx&lt;/a&gt;。&lt;/p&gt;
&lt;p&gt;caddy 可在 JSON 中添加如下内容：&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code json"&gt;&lt;a id="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-1" name="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-1" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-1"&gt;&lt;/a&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;a id="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-2" name="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-2" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-2"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;"handle"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;
&lt;a id="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-3" name="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-3" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-3"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;a id="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-4" name="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-4" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-4"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nt"&gt;"handler"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"subroute"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;a id="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-5" name="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-5" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-5"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nt"&gt;"routes"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;
&lt;a id="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-6" name="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-6" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-6"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;a id="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-7" name="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-7" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-7"&gt;&lt;/a&gt;&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="nt"&gt;"handle"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;
&lt;a id="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-8" name="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-8" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-8"&gt;&lt;/a&gt;&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;a id="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-9" name="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-9" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-9"&gt;&lt;/a&gt;&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="nt"&gt;"handler"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"reverse_proxy"&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;a id="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-10" name="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-10" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-10"&gt;&lt;/a&gt;&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="nt"&gt;"headers"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;a id="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-11" name="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-11" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-11"&gt;&lt;/a&gt;&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="nt"&gt;"request"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;a id="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-12" name="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-12" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-12"&gt;&lt;/a&gt;&lt;span class="w"&gt;                    &lt;/span&gt;&lt;span class="nt"&gt;"set"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;a id="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-13" name="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-13" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-13"&gt;&lt;/a&gt;&lt;span class="w"&gt;                    &lt;/span&gt;&lt;span class="nt"&gt;"Host"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;
&lt;a id="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-14" name="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-14" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-14"&gt;&lt;/a&gt;&lt;span class="w"&gt;                        &lt;/span&gt;&lt;span class="s2"&gt;"bgme.me"&lt;/span&gt;
&lt;a id="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-15" name="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-15" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-15"&gt;&lt;/a&gt;&lt;span class="w"&gt;                    &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;a id="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-16" name="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-16" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-16"&gt;&lt;/a&gt;&lt;span class="w"&gt;                    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;a id="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-17" name="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-17" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-17"&gt;&lt;/a&gt;&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
&lt;a id="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-18" name="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-18" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-18"&gt;&lt;/a&gt;&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="nt"&gt;"response"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;a id="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-19" name="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-19" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-19"&gt;&lt;/a&gt;&lt;span class="w"&gt;                    &lt;/span&gt;&lt;span class="nt"&gt;"delete"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;
&lt;a id="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-20" name="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-20" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-20"&gt;&lt;/a&gt;&lt;span class="w"&gt;                    &lt;/span&gt;&lt;span class="s2"&gt;"server"&lt;/span&gt;
&lt;a id="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-21" name="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-21" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-21"&gt;&lt;/a&gt;&lt;span class="w"&gt;                    &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;a id="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-22" name="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-22" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-22"&gt;&lt;/a&gt;&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;a id="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-23" name="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-23" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-23"&gt;&lt;/a&gt;&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="p"&gt;},&lt;/span&gt;
&lt;a id="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-24" name="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-24" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-24"&gt;&lt;/a&gt;&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="nt"&gt;"upstreams"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;
&lt;a id="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-25" name="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-25" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-25"&gt;&lt;/a&gt;&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;a id="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-26" name="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-26" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-26"&gt;&lt;/a&gt;&lt;span class="w"&gt;                    &lt;/span&gt;&lt;span class="nt"&gt;"dial"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="s2"&gt;"localhost:18400"&lt;/span&gt;
&lt;a id="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-27" name="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-27" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-27"&gt;&lt;/a&gt;&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;a id="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-28" name="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-28" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-28"&gt;&lt;/a&gt;&lt;span class="w"&gt;                &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;a id="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-29" name="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-29" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-29"&gt;&lt;/a&gt;&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;a id="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-30" name="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-30" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-30"&gt;&lt;/a&gt;&lt;span class="w"&gt;            &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;a id="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-31" name="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-31" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-31"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;a id="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-32" name="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-32" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-32"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;a id="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-33" name="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-33" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-33"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;a id="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-34" name="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-34" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-34"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;],&lt;/span&gt;
&lt;a id="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-35" name="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-35" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-35"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="nt"&gt;"match"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;
&lt;a id="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-36" name="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-36" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-36"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;{&lt;/span&gt;
&lt;a id="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-37" name="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-37" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-37"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="nt"&gt;"path"&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="p"&gt;[&lt;/span&gt;
&lt;a id="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-38" name="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-38" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-38"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="s2"&gt;"/_matrix/media/*"&lt;/span&gt;
&lt;a id="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-39" name="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-39" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-39"&gt;&lt;/a&gt;&lt;span class="w"&gt;        &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;a id="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-40" name="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-40" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-40"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;a id="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-41" name="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-41" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-41"&gt;&lt;/a&gt;&lt;span class="w"&gt;    &lt;/span&gt;&lt;span class="p"&gt;]&lt;/span&gt;
&lt;a id="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-42" name="rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-42" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_bdd57231a98a4bdb8d775e90e8b67ff9-42"&gt;&lt;/a&gt;&lt;span class="p"&gt;}&lt;/span&gt;
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;此处应保证请求 &lt;code class="docutils literal"&gt;Host&lt;/code&gt; 与前方配置文件中 &lt;code class="docutils literal"&gt;name&lt;/code&gt; 一致。&lt;/p&gt;
&lt;/section&gt;
&lt;section id="section-5"&gt;
&lt;h2&gt;收尾&lt;/h2&gt;
&lt;p&gt;启动 matrix-media-repo 服务&lt;/p&gt;
&lt;div class="code"&gt;&lt;pre class="code bash"&gt;&lt;a id="rest_code_3aa9472c436c42fd9ab9c0e4be817939-1" name="rest_code_3aa9472c436c42fd9ab9c0e4be817939-1" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_3aa9472c436c42fd9ab9c0e4be817939-1"&gt;&lt;/a&gt;systemctl&lt;span class="w"&gt; &lt;/span&gt;daemon-reload
&lt;a id="rest_code_3aa9472c436c42fd9ab9c0e4be817939-2" name="rest_code_3aa9472c436c42fd9ab9c0e4be817939-2" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_3aa9472c436c42fd9ab9c0e4be817939-2"&gt;&lt;/a&gt;systemctl&lt;span class="w"&gt; &lt;/span&gt;start&lt;span class="w"&gt; &lt;/span&gt;matrix-media-repo.service
&lt;a id="rest_code_3aa9472c436c42fd9ab9c0e4be817939-3" name="rest_code_3aa9472c436c42fd9ab9c0e4be817939-3" href="https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/#rest_code_3aa9472c436c42fd9ab9c0e4be817939-3"&gt;&lt;/a&gt;systemctl&lt;span class="w"&gt; &lt;/span&gt;&lt;span class="nb"&gt;enable&lt;/span&gt;&lt;span class="w"&gt; &lt;/span&gt;matrix-media-repo.service
&lt;/pre&gt;&lt;/div&gt;
&lt;p&gt;如 matrix-media-repo 运行正常，可安全移除本地旧有媒体文件。&lt;/p&gt;
&lt;/section&gt;
&lt;section id="section-6"&gt;
&lt;h2&gt;参考资料&lt;/h2&gt;
&lt;ul class="simple"&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="https://matrix.org/docs/spec/client_server/r0.6.1#id66"&gt;Client-Server API - Content repository&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="https://matrix.org/docs/spec/server_server/r0.1.4#content-repository"&gt;Federation API - Content Repository&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="https://github.com/turt2live/matrix-media-repo/blob/master/config.sample.yaml"&gt;matrix-media-repo config.sample.yaml&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;li&gt;&lt;p&gt;&lt;a class="reference external" href="https://federationtester.matrix.org/"&gt;Matrix Federation Tester&lt;/a&gt;&lt;/p&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/section&gt;</description><category>Matrix</category><category>matrix-media-repo</category><category>S3</category><category>Synapse</category><guid>https://blog.bgme.me/posts/2021/matrix-deployment-process-part-3-matrix-media-repo/</guid><pubDate>Sun, 06 Jun 2021 04:24:29 GMT</pubDate></item></channel></rss>