go-fastdfs/QA.html
junqiang.zhang 8cd922ff62 qa
2021-11-06 22:32:47 +08:00

907 lines
90 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE HTML>
<html lang="" >
<head>
<meta charset="UTF-8">
<meta content="text/html; charset=utf-8" http-equiv="Content-Type">
<title>问题汇总 · GitBook</title>
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="description" content="">
<meta name="generator" content="GitBook 3.2.3">
<link rel="stylesheet" href="gitbook/style.css">
<link rel="stylesheet" href="gitbook/gitbook-plugin-highlight/website.css">
<link rel="stylesheet" href="gitbook/gitbook-plugin-search/search.css">
<link rel="stylesheet" href="gitbook/gitbook-plugin-fontsettings/website.css">
<meta name="HandheldFriendly" content="true"/>
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="black">
<link rel="apple-touch-icon-precomposed" sizes="152x152" href="gitbook/images/apple-touch-icon-precomposed-152.png">
<link rel="shortcut icon" href="gitbook/images/favicon.ico" type="image/x-icon">
<link rel="next" href="QA.html" />
<link rel="prev" href="api.html" />
</head>
<body>
<div class="book">
<div class="book-summary">
<div id="book-search-input" role="search">
<input type="text" placeholder="Type to search" />
</div>
<nav role="navigation">
<ul class="summary">
<li class="chapter " data-level="1.1" data-path="./">
<a href="./#vision">
愿景
</a>
</li>
<li class="chapter " data-level="1.2" data-path="./">
<a href="./#background">
背景
</a>
<ul class="articles">
<li class="chapter " data-level="1.2.1" data-path="./">
<a href="./#what">
go-fastdfs是什么
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="1.3" data-path="./">
<a href="./#character">
特性
</a>
<ul class="articles">
<li class="chapter " data-level="1.3.1" data-path="./">
<a href="./#advantage">
go-fastdfs优点
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="1.4" data-path="install.html">
<a href="install.html">
安装
</a>
<ul class="articles">
<li class="chapter " data-level="1.4.1" data-path="install.html">
<a href="install.html#quick">
极速体验
</a>
</li>
<li class="chapter " data-level="1.4.2" data-path="install.html">
<a href="install.html#docker">
Docker体验
</a>
</li>
<li class="chapter " data-level="1.4.3" data-path="install.html">
<a href="install.html#compiler_install">
编译安装
</a>
</li>
<li class="chapter " data-level="1.4.4" data-path="install.html">
<a href="install.html#small-cluster">
小集群安装
</a>
</li>
<li class="chapter " data-level="1.4.5" data-path="install.html">
<a href="install.html#big-cluster">
海量集群安装(推荐)
</a>
</li>
<li class="chapter " data-level="1.4.6" data-path="ca.html">
<a href="ca.html">
https证书生成
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="1.5" data-path="authentication.html">
<a href="authentication.html">
认证
</a>
<ul class="articles">
<li class="chapter " data-level="1.5.1" data-path="authentication.html">
<a href="authentication.html#fingerprint">
按文件指纹认证
</a>
</li>
<li class="chapter " data-level="1.5.2" data-path="authentication.html">
<a href="authentication.html#google">
按google认证码认证
</a>
</li>
<li class="chapter " data-level="1.5.3" data-path="authentication.html">
<a href="authentication.html#custom">
用户自定义认证
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="1.6" data-path="usage.html">
<a href="usage.html">
语言"SDK"
</a>
<ul class="articles">
<li class="chapter " data-level="1.6.1" data-path="usage.html">
<a href="usage.html#description">
统一说明(重要)
</a>
</li>
<li class="chapter " data-level="1.6.2" data-path="usage.html">
<a href="usage.html#cmdline">
命令行上传
</a>
</li>
<li class="chapter " data-level="1.6.3" data-path="usage.html">
<a href="usage.html#web">
浏览器上传
</a>
</li>
<li class="chapter " data-level="1.6.4" data-path="usage.html">
<a href="usage.html#python">
Python语言
</a>
</li>
<li class="chapter " data-level="1.6.5" data-path="usage.html">
<a href="usage.html#go">
GO使用
</a>
</li>
<li class="chapter " data-level="1.6.6" data-path="usage.html">
<a href="usage.html#java">
Java语言
</a>
<ul class="articles">
<li class="chapter " data-level="1.6.6.1" data-path="usage.html">
<a href="usage.html#java-stream">
Java流上传
</a>
</li>
</ul>
</li>
</ul>
</li>
<li class="chapter " data-level="1.7" data-path="breakpoint.html">
<a href="breakpoint.html#go">
断点续传"SDK"
</a>
<ul class="articles">
<li class="chapter " data-level="1.7.1" data-path="breakpoint.html">
<a href="breakpoint.html#go">
GO
</a>
</li>
<li class="chapter " data-level="1.7.2" data-path="breakpoint.html">
<a href="breakpoint.html#js">
Javascript
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="1.8" data-path="api.html">
<a href="api.html">
管理API
</a>
</li>
<li class="chapter active" data-level="1.9" data-path="QA.html">
<a href="QA.html">
问题汇总
</a>
<ul class="articles">
<li class="chapter active" data-level="1.9.1" data-path="QA.html">
<a href="QA.html">
常见问题
</a>
</li>
<li class="chapter active" data-level="1.9.2" data-path="QA.html">
<a href="QA.html">
维护问题
</a>
</li>
</ul>
</li>
<li class="chapter " data-level="1.10" data-path="upgrade.html">
<a href="upgrade.html">
更新历史
</a>
</li>
<li class="divider"></li>
<li>
<a href="https://www.gitbook.com" target="blank" class="gitbook-link">
Published with GitBook
</a>
</li>
</ul>
</nav>
</div>
<div class="book-body">
<div class="body-inner">
<div class="book-header" role="navigation">
<!-- Title -->
<h1>
<i class="fa fa-circle-o-notch fa-spin"></i>
<a href="." >问题汇总</a>
</h1>
</div>
<div class="page-wrapper" tabindex="-1" role="main">
<div class="page-inner">
<div id="book-search-results">
<div class="search-noresults">
<section class="normal markdown-section">
<h1 id="&#x6700;&#x4F73;&#x5B9E;&#x6218;&#xFF1F;">&#x6700;&#x4F73;&#x5B9E;&#x6218;&#xFF1F;</h1>
<pre><code>&#x4E00;&#x3001;&#x5982;&#x679C;&#x662F;&#x6D77;&#x91CF;&#x5B58;&#x50A8;&#xFF0C;&#x4E0D;&#x8981;&#x5F00;&#x542F;&#x6587;&#x4EF6;token&#x8BA4;&#x8BC1;&#x529F;&#x80FD;&#xFF0C;&#x51CF;&#x5C11;&#x6027;&#x80FD;&#x5F00;&#x6D88;&#x3002;
&#x4E8C;&#x3001;&#x5C3D;&#x91CF;&#x7528;&#x6807;&#x51C6;&#x4E0A;&#x4F20;&#xFF0C;&#x4E0A;&#x4F20;&#x540E;&#x4E1A;&#x52A1;&#x4FDD;&#x5B58;path&#xFF0C;&#x5728;&#x4E1A;&#x52A1;&#x7528;&#x7684;&#x65F6;&#x5019;&#x518D;&#x5E76;&#x63A5;&#x4E0A;&#x57DF;&#x540D;&#xFF08;&#x65B9;&#x4FBF;&#x8FC1;&#x79FB;&#x6269;&#x5C55;&#x7B49;&#xFF09;&#x3002;
&#x4E09;&#x3001;&#x5982;&#x679C;&#x4F7F;&#x7528;&#x65AD;&#x70B9;&#x7EED;&#x4F20;&#xFF0C;&#x4E0A;&#x4F20;&#x540E;&#x4E00;&#x5B9A;&#x8981;&#x7528;&#x6587;&#x4EF6;id&#x7F6E;&#x6362;&#x6210;path&#x5B58;&#x50A8;&#xFF08;&#x5982;&#x4F55;&#x7F6E;&#x6362;&#x770B;&#xFF31;&#xFF21;/API&#x6587;&#x6863;&#x79D2;&#x4F20;&#x63A5;&#x53E3;&#xFF09;&#xFF0C;&#x4E3A;&#x540E;&#x9762;&#x8BBF;&#x95EE;&#x51CF;&#x5C11;&#x6027;&#x80FD;&#x5F00;&#x6D88;&#x3002;
&#x56DB;&#x3001;&#x5C3D;&#x91CF;&#x4F7F;&#x7528;&#x7269;&#x7406;&#x670D;&#x52A1;&#x5668;&#x90E8;&#x7F72;&#xFF0C;&#x56E0;&#x4E3A;&#x4E3B;&#x8981;&#x538B;&#x529B;&#x6216;&#x6027;&#x80FD;&#x6765;&#x81EA;&#x4E8E;IO
&#x4E94;&#x3001;&#x7EBF;&#x4E0A;&#x4E1A;&#x52A1;&#x5C3D;&#x91CF;&#x4F7F;&#x7528;nginx+gofastdfs&#x90E8;&#x7F72;&#x67B6;&#x6784;(&#x5747;&#x8861;&#x7B97;&#x6CD5;&#x4F7F;&#x7528;ip_hash)&#xFF0C;&#x4EE5;&#x6EE1;&#x8DB3;&#x540E;&#x9762;&#x7684;&#x529F;&#x80FD;&#x6269;&#x5C55;&#x6027;(nginx+lua)&#x3002;
&#x516D;&#x3001;&#x7EBF;&#x4E0A;&#x73AF;&#x5883;&#x6700;&#x597D;&#x4E0D;&#x8981;&#x4F7F;&#x7528;&#x5BB9;&#x5668;&#x90E8;&#x7F72;&#xFF0C;&#x5BB9;&#x5668;&#x9002;&#x7528;&#x4E8E;&#x6D4B;&#x8BD5;&#x548C;&#x529F;&#x80FD;&#x9A8C;&#x8BC1;&#x3002;
&#x603B;&#x7ED3;&#xFF1A;&#x4E1A;&#x52A1;&#x4FDD;&#x5B58;&#x7684;&#x6587;&#x4EF6;&#x7684;path,&#x51CF;&#x5C11;&#x540E;&#x671F;&#x8BBF;&#x95EE;&#x8DEF;&#x5F84;&#x8F6C;&#x6362;&#x5E26;&#x6765;&#x5F00;&#x6D88;,&#x6587;&#x4EF6;&#x8BBF;&#x95EE;&#x6743;&#x9650;&#x7531;&#x4E1A;&#x52A1;&#x6765;&#x5B8C;&#x6210;&#xFF0C;&#x8FD9;&#x6837;&#x6027;&#x80FD;&#x6700;&#x597D;&#xFF0C;&#x901A;&#x7528;&#x6027;&#x5F3A;&#xFF08;&#x53EF;&#x76F4;&#x63A5;&#x5176;&#x5B83;web&#x670D;&#x52A1;&#x5668;&#xFF09;&#x3002;
&#x91CD;&#x8981;&#x63D0;&#x9192;&#xFF1A;&#x5982;&#x679C;&#x5F00;&#x542F;&#x5C0F;&#x6587;&#x4EF6;&#x5408;&#x5E76;&#x529F;&#x80FD;&#xFF0C;&#x540E;&#x671F;&#x662F;&#x65E0;&#x6CD5;&#x5220;&#x9664;&#x5C0F;&#x6587;&#x4EF6;&#x7684;&#x3002;
&#x4E0A;&#x4F20;&#x7ED3;&#x679C;&#x8BF4;&#x660E;
&#x8BF7;&#x4F7F;&#x7528;md5,path,scene&#x5B57;&#x6BB5;&#xFF0C;&#x5176;&#x5B83;&#x662F;&#x4E3A;&#x4E86;&#x517C;&#x5BB9;&#x8001;&#x7684;&#x7EBF;&#x4E0A;&#x7CFB;&#x7EDF;&#x6DFB;&#x52A0;&#x7684;&#xFF0C;&#x4EE5;&#x540E;&#x6709;&#x53EF;&#x80FD;&#x53BB;&#x6389;&#x3002;
</code></pre><h2 id="&#x914D;&#x7F6E;&#x6587;&#x4EF6;&#x5728;&#x54EA;&#x91CC;&#xFF1F;">&#x914D;&#x7F6E;&#x6587;&#x4EF6;&#x5728;&#x54EA;&#x91CC;&#xFF1F;</h2>
<pre><code>1)go-fastdfs&#x91C7;&#x7528;&#x81EA;&#x52A8;&#x751F;&#x6210;&#x914D;&#x7F6E;&#x6587;&#x4EF6;&#x7684;&#x65B9;&#x5F0F;&#x8FDB;&#x884C;&#x8BBE;&#x8BA1;&#xFF0C;&#x6240;&#x4EE5;&#x8981;&#x60F3;&#x4FEE;&#x6539;&#x914D;&#x7F6E;&#x5FC5;&#x987B;&#x8FD0;&#x884C;&#x4E00;&#x6B21;&#xFF0C;&#x8BA9;go-fastdfs&#x5E2E;&#x4F60;&#x751F;&#x6210;&#x914D;&#x7F6E;&#x6587;&#x4EF6;
2&#xFF09;&#x914D;&#x7F6E;&#x6587;&#x4EF6;&#x5B58;&#x653E;&#x5728; conf/cfg.json &#x4E0B;
3&#xFF09;&#x6CE8;&#x610F;&#xFF1A;&#x7531;&#x4E8E;conf/cfg.json &#x91C7;&#x7528;json&#x683C;&#x5F0F;&#xFF0C;&#x4EC0;&#x4E48;&#x683C;&#x5F0F;&#x7684;&#x9519;&#x8BEF;&#x90FD;&#x4F1A;&#x5F15;&#x8D77;go-fastdfs&#x65E0;&#x6CD5;&#x542F;&#x52A8;&#xFF0C;&#x6240;&#x4EE5;&#x4FEE;&#x6539;&#x5B8C;&#x540E;&#x6700;&#x597D;&#x7528;json&#x683C;&#x5F0F;&#x5DE5;&#x5177;&#x8FDB;&#x884C;&#x68C0;&#x67E5;&#x3002;
</code></pre><h2 id="&#x91CD;&#x8981;&#x8BF4;&#x660E;&#xFF1F;">&#x91CD;&#x8981;&#x8BF4;&#x660E;&#xFF1F;</h2>
<pre><code>1&#xFF09;go-fastdfs&#x914D;&#x7F6E;&#x9879;&#x975E;&#x5E38;&#x591A;&#xFF0C;&#x6709;&#x4E9B;&#x914D;&#x7F6E;&#x751A;&#x81F3;&#x8FD8;&#x6709;&#x4F9D;&#x8D56;&#x5173;&#x7CFB;
&#x4F7F;&#x7528;&#x524D;&#x6700;&#x597D;&#x8BA4;&#x771F;&#x9605;&#x8BFB;&#x6587;&#x6863;&#xFF0C;&#x6216;&#x89C6;&#x9891;&#x6559;&#x7A0B;&#x3002;
2&#xFF09;&#x63D0;&#x95EE;&#x7FA4;&#x91CC;&#x4E0D;&#x56DE;&#x7B54;&#x6587;&#x6863;&#x4E2D;&#x5DF2;&#x6709;&#x8BF4;&#x660E;&#x7684;&#x95EE;&#x9898;&#xFF0C;&#x514D;&#x5F97;&#x5BF9;&#x5927;&#x5BB6;&#x4EA7;&#x751F;&#x5F71;&#x54CD;&#x3002;
</code></pre><h2 id="&#x6709;&#x7BA1;&#x7406;&#x540E;&#x53F0;&#x4E48;&#xFF1F;">&#x6709;&#x7BA1;&#x7406;&#x540E;&#x53F0;&#x4E48;&#xFF1F;</h2>
<pre><code>https://github.com/perfree/go-fastdfs-web
</code></pre><h2 id="&#x65AD;&#x70B9;&#x4E0A;&#x4F20;&#x6709;&#x4F7F;&#x7528;&#x8BF4;&#x660E;&#x4E48;&#xFF1F;">&#x65AD;&#x70B9;&#x4E0A;&#x4F20;&#x6709;&#x4F7F;&#x7528;&#x8BF4;&#x660E;&#x4E48;&#xFF1F;</h2>
<pre><code>https://github.com/tus
</code></pre><h2 id="&#x5728;&#x5FAE;&#x4FE1;&#x8BA8;&#x8BBA;&#x7FA4;&#x4E2D;&#x5927;&#x5BB6;&#x90FD;&#x95EE;&#x5230;go-fastdfs&#x6027;&#x80FD;&#x600E;&#x6837;&#xFF1F;">&#x5728;&#x5FAE;&#x4FE1;&#x8BA8;&#x8BBA;&#x7FA4;&#x4E2D;&#x5927;&#x5BB6;&#x90FD;&#x95EE;&#x5230;go-fastdfs&#x6027;&#x80FD;&#x600E;&#x6837;&#xFF1F;</h2>
<pre><code>&#x7531;&#x4E8E;&#x95EE;&#x7684;&#x4EBA;&#x592A;&#x591A;&#xFF0C;&#x5728;&#x8FD9;&#x91CC;&#x7EDF;&#x4E00;&#x56DE;&#x7B54;&#x3002;
go-fastdfs&#x7684;&#x6587;&#x4EF6;&#x5B9A;&#x4F4D;&#x4E0E;&#x5176;&#x5B83;&#x5206;&#x5E03;&#x5F0F;&#x7CFB;&#x7EDF;&#x4E0D;&#x540C;&#xFF0C;&#x5B83;&#x7684;&#x5BFB;&#x5740;&#x662F;&#x76F4;&#x63A5;&#x5B9A;&#x4F4D;&#xFF0C;&#x4E0D;&#x7ECF;&#x8FC7;&#x4EFB;&#x4F55;&#x7EC4;&#x4EF6;&#xFF0C;&#x6240;&#x4EE5;&#x53EF;&#x4EE5;&#x8FD1;&#x4F3C;&#x65F6;&#x95F4;&#x590D;&#x6742;&#x5EA6;&#x4E3A;o(1)[&#x6587;&#x4EF6;&#x8DEF;&#x5F84;&#x5B9A;&#x4F4D;]
&#x57FA;&#x672C;&#x6CA1;&#x6709;&#x6027;&#x80FD;&#x635F;&#x8017;&#xFF0C;&#x9879;&#x76EE;&#x4E2D;&#x4E5F;&#x9644;&#x6709;&#x538B;&#x6D4B;&#x811A;&#x672C;&#xFF0C;&#x5927;&#x5BB6;&#x53EF;&#x4EE5;&#x81EA;&#x5DF2;&#x8FDB;&#x884C;&#x538B;&#x6D4B;&#xFF0C;&#x7FA4;&#x91CC;&#x5C31;&#x4E0D;&#x8981;&#x592A;&#x591A;&#x8BA8;&#x8BBA;&#x95EE;&#x9898;&#x4E86;&#xFF0C;&#x4EBA;&#x591A;&#x6BCF;&#x6B21;&#x56DE;&#x590D;&#x540C;&#x6837;&#x7684;&#x95EE;&#x9898;
&#x5927;&#x5BB6;&#x4E5F;&#x4F1A;&#x89C9;&#x5F97;&#x8FD9;&#x7FA4;&#x65E0;&#x804A;&#x3002;
</code></pre><h2 id="&#x5DF2;&#x7ECF;&#x4F7F;&#x7528;fastdfs&#x5B58;&#x50A8;&#x7684;&#x6587;&#x4EF6;&#x53EF;&#x4EE5;&#x8FC1;&#x79FB;&#x5230;go-fastdfs&#x4E0B;&#x4E48;&#x5176;&#x5B83;&#x7C7B;&#x4F3C;&#xFF1F;">&#x5DF2;&#x7ECF;&#x4F7F;&#x7528;fastdfs&#x5B58;&#x50A8;&#x7684;&#x6587;&#x4EF6;&#x53EF;&#x4EE5;&#x8FC1;&#x79FB;&#x5230;go-fastdfs&#x4E0B;&#x4E48;(&#x5176;&#x5B83;&#x7C7B;&#x4F3C;)&#xFF1F;</h2>
<pre><code>&#x7B54;&#x6848;&#x662F;&#x53EF;&#x4EE5;&#x7684;&#xFF0C;&#x4F60;&#x62C5;&#x5FC3;&#x7684;&#x95EE;&#x9898;&#x662F;&#x8DEF;&#x5F84;&#x6539;&#x53D8;,go fastdfs&#x4E3A;&#x4F60;&#x8003;&#x8651;&#x4E86;&#x8FD9;&#x4E00;&#x70B9;
&#x6B65;&#x9AA4;&#xFF1A;
&#x4E00;&#x3001;&#x4E0B;&#x8F7D;&#x6700;&#x65B0;&#x7248;&#x7684;go-fastdfs
&#x4E8C;&#x3001;&#x5C06;&#x539F;&#x6765;&#x7684;fastdfs&#x6587;&#x4EF6;&#x76EE;&#x5F55;&#x590D;&#x5236;&#x5230;go-fastdfs&#x7684; files&#x76EE;&#x5F55;&#x4E0B;(&#x5982;&#x679C;&#x6587;&#x4EF6;&#x5F88;&#x591A;&#xFF0C;&#x53EF;&#x4EE5;&#x9006;&#x5411;&#x8FC7;&#x6765;&#xFF0C;&#x5C06;fileserver&#x590D;&#x5236;&#x8FC7;&#x53BB;&#xFF0C;&#x4F46;&#x8981;&#x4FDD;&#x7559;fileserver&#x7684;&#x76EE;&#x5F55;&#x7ED3;&#x6784;&#xFF09;
&#x4E09;&#x3001;&#x5C06;&#x914D;&#x7F6E;enable_migrate&#x8BBE;&#x4E3A;true
&#x6CE8;&#x610F;&#xFF1A;&#x8FC1;&#x79FB;&#x8FC7;&#x7A0B;&#x4E2D;&#x4F1A;&#x626B;&#x63CF;&#x6574;&#x4E0B;files&#x76EE;&#x5F55;&#x4E0B;&#x7684;&#x6240;&#x6709;&#x6587;&#x4EF6;&#xFF0C;
&#x901F;&#x5EA6;&#x8F83;&#x6162;&#xFF0C;&#x8FC1;&#x79FB;&#x5B8C;&#x6210;&#x540E;&#x8BF7;&#x5C06;enable_migrate&#x8BBE;&#x4E3A;false
&#x8BF4;&#x660E;&#xFF1A;go-fastdfs&#x7684;&#x76EE;&#x5F55;&#x662F;&#x4E0D;&#x80FD;&#x53D8;&#x52A8;&#x7684;&#xFF0C;&#x4E0E;&#x540C;&#x6B65;&#x673A;&#x5236;&#x76F8;&#x5173;&#xFF0C;&#x5F88;&#x591A;&#x540C;&#x5B66;&#x5728;&#x7FA4;&#x91CC;&#x95EE;&#x9898;&#xFF0C;&#x6211;&#x7684;files&#x76EE;&#x5F55;&#x80FD;&#x4E0D;&#x80FD;&#x81EA;&#x5B9A;&#x4E49;&#xFF0C;&#x7B54;&#x6848;&#x662F;&#x5426;&#x5B9A;&#x7684;&#x3002;
&#x81F3;&#x4E8E;&#x80FD;&#x4E0D;&#x80FD;&#x7528;&#x8F6F;&#x94FE;&#x63A5;&#x7684;&#x65B9;&#x5F0F;&#x672C;&#x4EBA;&#x6CA1;&#x6709;&#x6D4B;&#x8BD5;&#x8FC7;&#xFF0C;&#x53EF;&#x4EE5;&#x81EA;&#x884C;&#x6D4B;&#x8BD5;&#x3002;
</code></pre><h2 id="&#x8FDB;&#x7A0B;&#x81EA;&#x52A8;&#x9000;&#x51FA;&#x662F;&#x600E;&#x4E48;&#x529E;&#xFF1F;">&#x8FDB;&#x7A0B;&#x81EA;&#x52A8;&#x9000;&#x51FA;&#x662F;&#x600E;&#x4E48;&#x529E;&#xFF1F;</h2>
<pre><code>&#x8FDB;&#x7A0B;&#x9000;&#x51FA;&#x4E3B;&#x8981;&#x662F;&#x6CA1;&#x6709;&#x653E;&#x5230;&#x540E;&#x53F0;&#x8FD0;&#x884C; &#xFF0C;&#x653E;&#x5230;&#x540E;&#x540E;&#x53F0;&#x884C;&#x8981;&#x5427;&#x4F7F;&#x7528;&#x9879;&#x76EE;&#x7684;
control https://github.com/sjqzhang/go-fastdfs/blob/master/control
&#x6587;&#x4EF6;&#x8FDB;&#x884C;&#x63A7;&#x5236;&#x6216;&#x8005;&#x4F7F;&#x7528;supervisor&#x7B49;&#x5DE5;&#x5177;
</code></pre><h2 id="&#x4EC0;&#x4E48;&#x662F;&#x96C6;&#x7FA4;&#xFF0C;&#x5982;&#x4F55;&#x7528;nginx&#x7BA1;&#x7406;&#x591A;&#x96C6;&#x7FA4;&#xFF1F;">&#x4EC0;&#x4E48;&#x662F;&#x96C6;&#x7FA4;&#xFF0C;&#x5982;&#x4F55;&#x7528;Nginx&#x7BA1;&#x7406;&#x591A;&#x96C6;&#x7FA4;&#xFF1F;</h2>
<pre><code>1&#x3001;&#x5728;go-fastdfs&#x4E2D;&#xFF0C;&#x4E00;&#x4E2A;&#x96C6;&#x7FA4;&#x5C31;&#x662F;&#x4E00;&#x4E2A;group&#x3002;
2&#x3001;&#x8BF7;&#x53C2;&#x9605;&#x90E8;&#x7F72;&#x56FE;
&#x6CE8;&#x610F;&#xFF1A;&#x914D;&#x7F6E;&#x4E2D;&#x7684; support_group_manage &#x53C2;&#x6570;&#x8BBE;&#x4E3A;true&#x65F6;&#xFF0C;&#x6240;&#x6709;&#x7684;url&#x4E2D;&#x90FD;&#x81EA;&#x52A8;&#x6DFB;&#x52A0;&#x7EC4;&#x4FE1;&#x606F;&#x3002;
&#x4F8B;&#x5982;&#xFF1A;http://10.1.5.9:8080/group/status
&#x9ED8;&#x8BA4;&#xFF1A;http://10.1.5.9:8080/status
&#x533A;&#x522B;&#xFF1A;&#x591A;&#x4E86;group,&#x5BF9;&#x5E94;&#x914D;&#x7F6E;&#x4E2D;&#x7684; group &#x53C2;&#x6570;,&#x8FD9;&#x6837;&#x4E3B;&#x8981;&#x662F;&#x4E3A;&#x4E86;&#x89E3;&#x51B3;&#x4E00;&#x4E2A;Nginx&#x53CD;&#x5411;&#x4EE3;&#x7406;&#x591A;&#x4E2A;group(&#x96C6;&#x7FA4;)
&#x5177;&#x4F53;&#x8BF7;&#x53C2;&#x9605;&#x90E8;&#x7F72;&#x56FE;
</code></pre><h2 id="&#x5982;&#x4F55;&#x642D;&#x5EFA;&#x96C6;&#x7FA4;&#xFF1F;">&#x5982;&#x4F55;&#x642D;&#x5EFA;&#x96C6;&#x7FA4;&#xFF1F;</h2>
<pre><code>&#x4E00;&#x3001;&#x5148;&#x4E0B;&#x8F7D;&#x5DF2;&#x7F16;&#x8BD1;&#x7684;&#x53EF;&#x6267;&#x884C;&#x6587;&#x4EF6;&#xFF08;&#x7528;&#x6700;&#x65B0;&#x7248;&#x672C;&#xFF09;
&#x4E8C;&#x3001;&#x8FD0;&#x884C;&#x53EF;&#x6267;&#x884C;&#x6587;&#x4EF6;&#xFF08;&#x751F;&#x6210;&#x914D;&#x7F6E;&#xFF09;
&#x4E09;&#x3001;&#x4FEE;&#x6539;&#x914D;&#x7F6E;
peers&#xFF1A;&#x589E;&#x52A0;&#x5BF9;&#x7AEF;&#x7684;http&#x5730;&#x5740;
&#x68C0;&#x67E5;:
host:&#x81EA;&#x52A8;&#x751F;&#x6210;&#x662F;&#x5426;&#x6B63;&#x786E;
peer_id:&#x96C6;&#x7FA4;&#x5185;&#x662F;&#x5426;&#x552F;&#x4E00;
&#x56DB;&#x3001;&#x91CD;&#x65B0;&#x8FD0;&#x884C;&#x670D;&#x5668;
&#x4E94;&#x3001;&#x9A8C;&#x8BC1;&#x670D;&#x52A1;&#x662F;&#x5426;OK
</code></pre><h2 id="&#x9002;&#x5408;&#x6D77;&#x91CF;&#x5B58;&#x50A8;&#x5417;&#xFF1F;">&#x9002;&#x5408;&#x6D77;&#x91CF;&#x5B58;&#x50A8;&#x5417;&#xFF1F;</h2>
<pre><code>&#x7B54;&#x6848;&#xFF1A;&#x9002;&#x5408;&#x6D77;&#x91CF;&#x5B58;&#x50A8;
</code></pre><p><img src="data:image/jpeg;base64,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" alt="&#x6848;&#x4F8B;"></p>
<h2 id="&#x5982;&#x4F55;&#x4E0A;&#x4F20;&#x6587;&#x4EF6;&#x5939;&#xFF1F;">&#x5982;&#x4F55;&#x4E0A;&#x4F20;&#x6587;&#x4EF6;&#x5939;&#xFF1F;</h2>
<pre><code> DIR=log &amp;&amp; ls $DIR |xargs -n 1 -I {} curl -s -F path=$DIR -F file=@$DIR/{} http://10.1.50.90:8080/upload
&#x4E0A;&#x9762;&#x547D;&#x4EE4;&#x7684;log&#x4E3A;&#x8981;&#x4E0A;&#x4F20;&#x7684;&#x76EE;&#x5F55;&#xFF0C;&#x5982;&#x679C;&#x4EE3;&#x7801;&#x4E0A;&#x4F20;&#x5C31;&#x662F;&#x7B80;&#x5355;&#x7684;&#x5FAA;&#x73AF;&#x4E0A;&#x4F20;&#x5C31;&#xFF2F;&#xFF2B;&#x3002;
</code></pre><h2 id="&#x5982;&#x4F55;&#x7F29;&#x653E;&#x56FE;&#x7247;&#xFF1F;">&#x5982;&#x4F55;&#x7F29;&#x653E;&#x56FE;&#x7247;&#xFF1F;</h2>
<pre><code>&#x5728;&#x4E0B;&#x8F7D;url&#x4E2D;&#x52A0;&#x5165;width&#x5404;height&#x53C2;&#x6570;
&#x4F8B;&#x5982;&#xFF1A;http://127.0.0.1:8080/group1/haystack/5/124,0,27344,.jpg?download=0&amp;width=100&amp;height=100
&#x7279;&#x660E;&#x8BF4;&#x660E;&#x662F;&#xFF1A;&#x5982;&#x679C;&#x8981;&#x7B49;&#x6BD4;&#x4F8B;&#x7F29;&#x653E;&#xFF0C;&#x8BF7;&#x5C06;width&#x6216;height&#x8BBE;&#x4E3A;&#xFF10;
</code></pre><h2 id="&#x5982;&#x4F55;&#x5728;&#x6D4F;&#x89C8;&#x5668;&#x4E2D;&#x76F4;&#x63A5;&#x663E;&#x793A;&#x56FE;&#x7247;&#xFF1F;">&#x5982;&#x4F55;&#x5728;&#x6D4F;&#x89C8;&#x5668;&#x4E2D;&#x76F4;&#x63A5;&#x663E;&#x793A;&#x56FE;&#x7247;&#xFF1F;</h2>
<pre><code>&#x5728;&#x4E0B;&#x8F7D;url&#x4E2D;&#x52A0;&#x5165;download=0&#x53C2;&#x6570;
&#x4F8B;&#x5982;&#xFF1A;http://127.0.0.1:8080/group1/haystack/5/124,0,27344,.jpg?download=0
</code></pre><h2 id="&#x5982;&#x4F55;&#x5B9E;&#x73B0;&#x81EA;&#x5B9A;&#x4E49;&#x8BA4;&#x8BC1;&#x4E0A;&#x4F20;&#x4E0B;&#x8F7D;&#xFF1F;">&#x5982;&#x4F55;&#x5B9E;&#x73B0;&#x81EA;&#x5B9A;&#x4E49;&#x8BA4;&#x8BC1;&#x4E0A;&#x4F20;&#x4E0B;&#x8F7D;&#xFF1F;</h2>
<pre><code>&#x4E00;&#x3001;&#x4F7F;&#x7528;1.2.6&#x7248;&#x672C;&#x4EE5;&#x540E;&#x7684;go-fastdfs
&#x4E8C;&#x3001;&#x8BBE;auth_url&#x53C2;&#x6570;&#xFF08;&#x5E94;&#x7528;&#x63D0;&#x4F9B;&#xFF09;
&#x4E09;&#x3001;&#x5E94;&#x7528;&#x5B9E;&#x73B0;&#x9A8C;&#x8BC1;&#x6743;&#x9650;&#x63A5;&#x53E3;&#xFF08;&#x5373;&#x7B2C;&#x4E8C;&#x6B65;&#x7684;url&#xFF09;,&#x53C2;&#x6570;&#x4E3A;&#x3000;auth_toke &#x8FD4;&#x56DE;&#x3000;ok &#x8868;&#x793A;&#x8BA4;&#x8BC1;&#x901A;&#x8FC7;&#xFF0C;&#x5176;&#x5B83;&#x4E3A;&#x4E0D;&#x901A;&#x8FC7;
&#x56DB;&#x3001;&#x8BA4;&#x8BC1;&#x901A;&#x8FC7;&#x540E;&#xFF0C;&#x53EF;&#x4EE5;&#x4E0A;&#x4F20;&#x6216;&#x4E0B;&#x8F7D;
</code></pre><h2 id="&#x4E0B;&#x8F7D;&#x65E0;&#x8BA4;&#x8BC1;&#x662F;&#x600E;&#x4E48;&#x56DE;&#x4E8B;&#xFF1F;">&#x4E0B;&#x8F7D;&#x65E0;&#x8BA4;&#x8BC1;&#x662F;&#x600E;&#x4E48;&#x56DE;&#x4E8B;&#xFF1F;</h2>
<pre><code>1.&#x68C0;&#x67E5;&#x914D;&#x7F6E;&#x6587;&#x4EF6; auth_url &#x4E0D;&#x4E3A;&#x7A7A;&#xFF0C;&#x4E14;&#x5FC5;&#x987B;&#x6709;&#x6548;
2.&#x68C0;&#x67E5;&#x914D;&#x7F6E;&#x6587;&#x4EF6;&#x4E2D;&#x7684; enable_download_auth:true
3.&#x5728;&#x96C6;&#x7FA4;&#x4EE5;&#x5916;&#x7684;&#x673A;&#x5668;&#x8FDB;&#x884C;&#x4E0B;&#x8F7D;&#xFF08;&#x96C6;&#x7FA4;&#x5185;&#x4E0D;&#x68C0;&#x67E5;&#x8BA4;&#x8BC1;&#xFF09;
</code></pre><h2 id="&#x8FD8;&#x9700;&#x8981;&#x5B89;&#x88C5;nginx&#x4E48;&#xFF1F;">&#x8FD8;&#x9700;&#x8981;&#x5B89;&#x88C5;nginx&#x4E48;&#xFF1F;</h2>
<pre><code>go-fastdfs&#x672C;&#x8EAB;&#x662F;&#x4E00;&#x4E2A;&#x9AD8;&#x6027;&#x80FD;&#x7684;web&#x670D;&#x52A1;&#x5668;&#xFF0C;&#x5728;&#x5F00;&#x53D1;&#x6216;&#x6D4B;&#x8BD5;&#x65F6;&#xFF0C;&#x53EF;&#x4EE5;&#x4E0D;&#x7528;&#x5B89;&#x88C5;nginx&#xFF0C;
&#x4F46;go-fastdfs&#x7684;&#x529F;&#x80FD;&#x5355;&#x4E00;&#xFF0C;&#x5982;&#x9700;&#x8981;&#x7F13;&#x5B58;&#x6216;&#x91CD;&#x5B9A;&#x5411;&#x6216;&#x5176;&#x5B83;&#x6269;&#x5C55;&#xFF0C;nginx&#x90FD;&#x6709;&#x6210;&#x719F;&#x7684;&#x7EC4;&#x4EF6;
&#x6240;&#x4EE5;&#x5EFA;&#x8BAE;&#x7EBF;&#x4E0A;&#x8FD8;&#x662F;&#x52A0;&#x4E00;&#x5C42;nginx&#xFF0C;&#x518D;&#x501F;&#x52A9;nginx+lua&#x89E3;&#x51B3;&#x6269;&#x5C55;&#x6027;&#x95EE;&#x9898;&#x3002;
</code></pre><h2 id="&#x80FD;&#x52A8;&#x6001;&#x52A0;&#x8F7D;&#x914D;&#x7F6E;&#x4E48;&#xFF1F;">&#x80FD;&#x52A8;&#x6001;&#x52A0;&#x8F7D;&#x914D;&#x7F6E;&#x4E48;&#xFF1F;</h2>
<pre><code>&#x7B54;&#x6848;&#xFF1A;&#x662F;&#x53EF;&#x4EE5;&#x7684;&#xFF0C;&#x4F46;&#x8981;&#x66F4;&#x65B0;&#x5230;&#x6700;&#x65B0;&#x7248;&#x672C;
&#x6B65;&#x9AA4;&#xFF1A;
1&#xFF09;&#x4FEE;&#x6539; conf/cfg.json &#x6587;&#x4EF6;
2&#xFF09;&#x8BBF;&#x95EE; http://10.1.xx.60:8080/reload
3&#xFF09; &#x6CE8;&#x610F;&#xFF1A;&#x6BCF;&#x4E2A;&#x8282;&#x70B9;&#x90FD;&#x9700;&#x8981;&#x8FDB;&#x884C;&#x540C;&#x6837;&#x7684;&#x64CD;&#x4F5C;
</code></pre><h2 id="&#x5982;&#x4F55;&#x67E5;&#x770B;&#x96C6;&#x7FA4;&#x6587;&#x4EF6;&#x4FE1;&#x606F;&#xFF1F;">&#x5982;&#x4F55;&#x67E5;&#x770B;&#x96C6;&#x7FA4;&#x6587;&#x4EF6;&#x4FE1;&#x606F;&#xFF1F;</h2>
<pre><code>http://10.1.xx.60:8080/stat
&#x5982;&#x679C;&#x51FA;&#x73B0;&#x6587;&#x4EF6;&#x7EDF;&#x8BA1;&#x51FA;&#x9519;&#x600E;&#x4E48;&#x529E;&#xFF1F;
&#x8BF7;&#x5220;&#x9664; data&#x76EE;&#x5F55;&#x4E0B;&#x7684; stat.json&#x6587;&#x4EF6; &#x91CD;&#x542F;&#x670D;&#x52A1;&#xFF0C;&#x8BF7;&#x7CFB;&#x7EDF;&#x81EA;&#x52A8;&#x91CD;&#x65B0;&#x8BA1;&#x7B97;&#x6587;&#x4EF6;&#x6570;&#x3002;
&#x6216;&#x8005;&#x8C03;&#x7528;
http://10.1.xx.60:8080/repair_stat
</code></pre><h2 id="&#x53EF;&#x9760;&#x6027;&#x600E;&#x6837;&#xFF0C;&#x80FD;&#x7528;&#x4E8E;&#x751F;&#x4EA7;&#x73AF;&#x5883;&#x4E48;&#xFF1F;">&#x53EF;&#x9760;&#x6027;&#x600E;&#x6837;&#xFF0C;&#x80FD;&#x7528;&#x4E8E;&#x751F;&#x4EA7;&#x73AF;&#x5883;&#x4E48;&#xFF1F;</h2>
<pre><code>&#x672C;&#x9879;&#x76EE;&#x5DF2;&#x5927;&#x89C4;&#x6A21;&#x7528;&#x4E8E;&#x751F;&#x4EA7;&#x73AF;&#x5883;&#xFF0C;&#x5982;&#x62C5;&#x5FC3;&#x4E0D;&#x80FD;&#x6EE1;&#x8DB3;
&#x53EF;&#x4EE5;&#x5728;&#x4F7F;&#x7528;&#x524D;&#x5BF9;&#x5176;&#x5404;&#x9879;&#x7279;&#x6027;&#x8FDB;&#x884C;&#x538B;&#x529B;&#x6D4B;&#x8BD5;&#xFF0C;&#x6709;&#x4EFB;&#x4F55;
&#x95EE;&#x9898;&#x53EF;&#x4EE5;&#x76F4;&#x63A5;&#x63D0;issue
</code></pre><h2 id="&#x5982;&#x4F55;&#x540E;&#x53F0;&#x8FD0;&#x884C;&#x7A0B;&#x5E8F;&#xFF1F;">&#x5982;&#x4F55;&#x540E;&#x53F0;&#x8FD0;&#x884C;&#x7A0B;&#x5E8F;&#xFF1F;</h2>
<pre><code>&#x8BF7;&#x4F7F;&#x7528;control &#x5BF9;&#x7A0B;&#x5E8F;&#x8FDB;&#x884C;&#x540E;&#x9762;&#x8FD0;&#x884C;&#xFF0C;&#x5177;&#x4F53;&#x64CD;&#x4F5C;&#x5982;&#x4E0B;:
&#x4E00;&#x3001; chmod +x control
&#x4E8C;&#x3001; &#x786E;&#x4FDD;control&#x4E0E;fileserver&#x5728;&#x540C;&#x4E00;&#x4E2A;&#x76EE;&#x5F55;
&#x4E09;&#x3001; ./control start|stop|status #&#x5BF9;&#x548C;&#x5E8F;&#x8FDB;&#x884C;&#x542F;&#x52A8;&#xFF0C;&#x505C;&#x6B62;&#xFF0C;&#x67E5;&#x770B;&#x72B6;&#x6001;&#x7B49;&#x3002;
</code></pre><h2 id="&#x80FD;&#x4E0D;&#x80FD;&#x5728;&#x4E00;&#x53F0;&#x673A;&#x5668;&#x90E8;&#x7F6E;&#x591A;&#x4E2A;&#x670D;&#x52A1;&#x7AEF;&#xFF1F;">&#x80FD;&#x4E0D;&#x80FD;&#x5728;&#x4E00;&#x53F0;&#x673A;&#x5668;&#x90E8;&#x7F6E;&#x591A;&#x4E2A;&#x670D;&#x52A1;&#x7AEF;&#xFF1F;</h2>
<pre><code>&#x4E0D;&#x80FD;&#xFF0C;&#x5728;&#x8BBE;&#x8BA1;&#x4E4B;&#x521D;&#x5C31;&#x5DF2;&#x8003;&#x8651;&#x5230;&#x96C6;&#x7FA4;&#x7684;&#x9AD8;&#x53EF;&#x7528;&#x95EE;&#x9898;&#xFF0C;&#x4E3A;&#x4E86;&#x4FDD;&#x8BC1;&#x96C6;&#x7FA4;&#x7684;&#x771F;&#x6B63;&#x53EF;&#x7528;&#xFF0C;&#x5FC5;&#x987B;&#x4E3A;&#x4E0D;&#x540C;&#x7684;ip,ip &#x4E0D;&#x80FD;&#x7528; 127.0.0.1
&#x9519;&#x8BEF;&#x3000;&quot;peers&quot;: [&quot;http://127.0.0.1:8080&quot;,&quot;http://127.0.0.1:8081&quot;,&quot;http://127.0.0.1:8082&quot;]
&#x6B63;&#x786E;&#x3000;&quot;peers&quot;: [&quot;http://10.0.0.3:8080&quot;,&quot;http://10.0.0.4:8080&quot;,&quot;http://10.0.0.5:8080&quot;]
</code></pre><h2 id="&#x6587;&#x4EF6;&#x4E0D;&#x540C;&#x6B65;&#x4E86;&#x600E;&#x4E48;&#x529E;&#xFF1F;">&#x6587;&#x4EF6;&#x4E0D;&#x540C;&#x6B65;&#x4E86;&#x600E;&#x4E48;&#x529E;&#xFF1F;</h2>
<pre><code>&#x6B63;&#x5E38;&#x60C5;&#x51B5;&#x4E0B;&#xFF0C;&#x96C6;&#x7FA4;&#x4F1A;&#x6BCF;&#x5C0F;&#x65F6;&#x81EA;&#x52A8;&#x540C;&#x6B65;&#x4FEE;&#x590D;&#x6587;&#x4EF6;&#x3002;&#xFF08;&#x6027;&#x80FD;&#x8F83;&#x5DEE;&#xFF0C;&#x5728;&#x6D77;&#x91CF;&#x60C5;&#x51B5;&#x4E0B;&#x5EFA;&#x8BAE;&#x5173;&#x95ED;&#x81EA;&#x52A8;&#x4FEE;&#x590D;&#xFF09;
&#x90A3;&#x5F02;&#x5E38;&#x60C5;&#x51B5;&#x4E0B;&#x600E;&#x4E48;&#xFF1F;
&#x7B54;&#x6848;&#xFF1A;&#x624B;&#x52A8;&#x540C;&#x6B65;&#xFF08;&#x6700;&#x597D;&#x5728;&#x4F4E;&#x5CF0;&#x6267;&#x884C;&#xFF09;
http://172.16.70.123:7080/sync?date=20190117&amp;force=1 (&#x8BF4;&#x660E;&#xFF1A;&#x8981;&#x5728;&#x6587;&#x4EF6;&#x591A;&#x7684;&#x670D;&#x52A1;&#x5668;&#x4E0A;&#x6267;&#x884C;&#xFF0C;&#x76F8;&#x5173;&#x4E8E;&#x63A8;&#x9001;&#x5230;&#x522B;&#x7684;&#x670D;&#x52A1;&#x5668;)
&#x53C2;&#x6570;&#x8BF4;&#x660E;&#xFF1A;date &#x8868;&#x793A;&#x540C;&#x6B65;&#x90A3;&#x4E00;&#x5929;&#x7684;&#x6570;&#x636E;&#x3000;force&#x3000;1.&#x8868;&#x793A;&#x662F;&#x5426;&#x5F3A;&#x5236;&#x540C;&#x6B65;&#x5F53;&#x5929;&#x6240;&#x6709;(&#x6027;&#x80FD;&#x5DEE;)&#xFF0C;0.&#x8868;&#x793A;&#x53EA;&#x540C;&#x6B65;&#x5931;&#x8D25;&#x7684;&#x6587;&#x4EF6;
&#x4E0D;&#x540C;&#x6B65;&#x7684;&#x60C5;&#x51B5;&#xFF1A;
1) &#x539F;&#x6765;&#x8FD0;&#x884C;N&#x53F0;&#xFF0C;&#x73B0;&#x5728;&#x7A81;&#x7136;&#x52A0;&#x5165;&#x4E00;&#x53F0;&#x53D8;&#x6210;N+1&#x53F0;
2&#xFF09;&#x539F;&#x6765;&#x8FD0;&#x884C;N&#x53F0;&#xFF0C;&#x67D0;&#x4E00;&#x53F0;&#x673A;&#x5668;&#x51FA;&#x73B0;&#x95EE;&#x9898;&#xFF0C;&#x53D8;&#x6210;N-1&#x53F0;
&#x5982;&#x679C;&#x51FA;&#x73B0;&#x591A;&#x5929;&#x6570;&#x636E;&#x4E0D;&#x4E00;&#x81F4;&#x600E;&#x4E48;&#x529E;&#xFF1F;&#x80FD;&#x4E00;&#x6B21;&#x540C;&#x6B65;&#x6240;&#x6709;&#x5417;&#xFF1F;
&#x7B54;&#x6848;&#x662F;&#x53EF;&#x4EE5;&#xFF1A;(&#x6700;&#x597D;&#x5728;&#x4F4E;&#x5CF0;&#x6267;&#x884C;)
http://172.16.70.123:7080/repair?force=1
</code></pre><h2 id="&#x6587;&#x4EF6;&#x4E0D;&#x540C;&#x6B65;&#x4F1A;&#x5F71;&#x54CD;&#x8BBF;&#x95EE;&#x5417;&#xFF1F;">&#x6587;&#x4EF6;&#x4E0D;&#x540C;&#x6B65;&#x4F1A;&#x5F71;&#x54CD;&#x8BBF;&#x95EE;&#x5417;&#xFF1F;</h2>
<pre><code>&#x7B54;&#x6848;&#xFF1A;&#x4E0D;&#x4F1A;&#x5F71;&#x54CD;&#xFF0C;&#x4F1A;&#x5728;&#x8BBF;&#x95EE;&#x4E0D;&#x5230;&#x65F6;&#xFF0C;&#x81EA;&#x52A8;&#x4FEE;&#x590D;&#x4E0D;&#x540C;&#x6B65;&#x7684;&#x6587;&#x4EF6;&#x3002;
</code></pre><h2 id="&#x5982;&#x4F55;&#x67E5;&#x770B;&#x7CFB;&#x7EDF;&#x72B6;&#x6001;&#x53CA;&#x8BF4;&#x660E;&#xFF1F;">&#x5982;&#x4F55;&#x67E5;&#x770B;&#x7CFB;&#x7EDF;&#x72B6;&#x6001;&#x53CA;&#x8BF4;&#x660E;&#xFF1F;</h2>
<pre><code>http://172.16.70.123:7080/status
&#x6CE8;&#x610F;:&#xFF08;Fs.Peers&#x662F;&#x4E0D;&#x5E26;&#x672C;&#x673A;&#x7684;&#xFF0C;&#x5982;&#x679C;&#x5E26;&#x6709;&#x53EF;&#x80FD;&#x51FA;&#x95EE;&#x9898;&#xFF09;
&#x672C;&#x673A;&#x4E3A; Fs.Local
sts[&quot;Fs.ErrorSetSize&quot;] = this.errorset.Cardinality() &#x8FD9;&#x4E2A;&#x4F1A;&#x5BFC;&#x81F4;&#x5185;&#x5B58;&#x589E;&#x52A0;
</code></pre><h2 id="&#x5982;&#x4F55;&#x7F16;&#x8BD1;go192&#xFF1F;">&#x5982;&#x4F55;&#x7F16;&#x8BD1;(go1.9.2+)&#xFF1F;</h2>
<pre><code>sh build.sh
</code></pre><h2 id="&#x5982;&#x4F55;&#x5B9E;&#x73B0;&#x81EA;&#x5B9A;&#x4E49;&#x8DEF;&#x5F84;&#x4E0A;&#x4F20;&#xFF1F;">&#x5982;&#x4F55;&#x5B9E;&#x73B0;&#x81EA;&#x5B9A;&#x4E49;&#x8DEF;&#x5F84;&#x4E0A;&#x4F20;&#xFF1F;</h2>
<pre><code>&#x81EA;&#x5B9A;&#x4E49;&#x8DEF;&#x5F84;&#x4E0A;&#x4F20;&#x9700;&#x5728;&#x914D;&#x7F6E;&#x4E2D;&#x8BBE;&#x5B9A;&#x5982;&#x4E0B;&#x4FE1;&#x606F;&#xFF1A;
enable_distinct_file:false,
enable_custom_path:true,
</code></pre><h2 id="&#x5982;&#x4F55;&#x538B;&#x6D4B;&#xFF1F;">&#x5982;&#x4F55;&#x538B;&#x6D4B;&#xFF1F;</h2>
<pre><code>&#x6B65;&#x9AA4;&#xFF1A;
&#x4E00;&#x3001;&#x521B;&#x5EFA;files&#x6587;&#x4EF6;&#x5939;
&#x4E8C;&#x3001;&#x5C06;gen_file.py&#x590D;&#x5236;&#x5230;files&#x6587;&#x4EF6;&#x5939;&#x4E2D;&#xFF0C;&#x901A;&#x8FC7;python gen_file.py &#x751F;&#x6210;&#x5927;&#x91CF;&#x6587;&#x4EF6;
&#x4E09;&#x3001;&#x5C06;benchmark.py&#x653E;&#x5230; files&#x76EE;&#x5F55;&#x5916;&#xFF08;&#x5373;&#x4E0E;files&#x76EE;&#x5F55;&#x540C;&#x4E00;&#x7EA7;&#xFF09;&#xFF0C;&#x901A;&#x8FC7;python benchmark.py&#x8FDB;&#x884C;&#x538B;&#x6D4B;&#xFF08;&#x6CE8;&#x610F;&#x5BF9;benchmark.py&#x4E2D;&#x7684;ip&#x8FDB;&#x884C;&#x4FEE;&#x6539;&#xFF09;
&#x5148;&#x7528;gen_file.py&#x4EA7;&#x751F;&#x5927;&#x91CF;&#x6587;&#x4EF6;&#xFF08;&#x6CE8;&#x610F;&#x5982;&#x679C;&#x8981;&#x751F;&#x6210;&#x5927;&#x6587;&#x4EF6;&#xFF0C;&#x81EA;&#x5DF2;&#x5728;&#x5185;&#x5BB9;&#x4E2D;&#x4E58;&#x4E0A;&#x4E00;&#x4E2A;&#x5927;&#x7684;&#x6570;&#x5373;&#x53EF;&#xFF09;
&#x4F8B;&#x5982;:
# -*- coding: utf-8 -*-
import os
j=0
for i in range(0,1000000):
if i%1000==0:
j=i
os.system(&apos;mkdir %s&apos;%(i))
with open(&apos;%s/%s.txt&apos;%(j,i),&apos;w+&apos;) as f:
f.write(str(i)*1024)
&#x63A5;&#x7740;&#x7528;benchmark.py&#x8FDB;&#x884C;&#x538B;&#x6D4B;
&#x4E5F;&#x53EF;&#x4EE5;&#x591A;&#x673A;&#x540C;&#x65F6;&#x8FDB;&#x884C;&#x538B;&#x6D4B;&#xFF0C;&#x6240;&#x6709;&#x8282;&#x70B9;&#x90FD;&#x662F;&#x53EF;&#x4EE5;&#x540C;&#x65F6;&#x8BFB;&#x5199;&#x7684;
</code></pre><h2 id="&#x652F;&#x6301;&#x65AD;&#x70B9;&#x4E0B;&#x8F7D;&#xFF1F;">&#x652F;&#x6301;&#x65AD;&#x70B9;&#x4E0B;&#x8F7D;&#xFF1F;</h2>
<pre><code>&#x7B54;&#x6848;&#xFF1A;&#x652F;&#x6301;
curl wget &#x5982;&#x4F55;
wget -c http://10.1.5.9:8080/group1/default/20190128/16/10/2G
culr -C - http://10.1.5.9:8080/group1/default/20190128/16/10/2G
</code></pre><h2 id="docker&#x5982;&#x4F55;&#x90E8;&#x7F72;&#xFF1F;">Docker&#x5982;&#x4F55;&#x90E8;&#x7F72;&#xFF1F;</h2>
<pre><code>&#x6B65;&#x9AA4;&#xFF1A;
&#x65B9;&#x5F0F;&#x4E00;&#x3001;
&#x4E00;&#x3001;&#x6784;&#x5EFA;&#x955C;&#x50CF;
docker build . -t fastdfs
&#x4E8C;&#x3001;&#x8FD0;&#x884C;&#x5BB9;&#x5668;&#xFF08;&#x4F7F;&#x7528;&#x73AF;&#x5883;&#x53D8;&#x91CF; GO_FASTDFS_DIR &#x6307;&#x5411;&#x5B58;&#x50A8;&#x76EE;&#x5F55;&#x3002;&#xFF09;
docker run --name fastdfs -v /data/fastdfs_data:/data -e GO_FASTDFS_DIR=/data fastdfs
&#x65B9;&#x5F0F;&#x4E8C;&#x3001;
&#x4E00;&#x3001;&#x62C9;&#x53D6;&#x955C;&#x50CF;
docker pull sjqzhang/go-fastdfs
&#x4E8C;&#x3001;&#x8FD0;&#x884C;&#x5BB9;&#x5668;
docker run --name fastdfs -v /data/fastdfs_data:/data -e GO_FASTDFS_DIR=/data fastdfs
</code></pre><h2 id="&#x5927;&#x6587;&#x4EF6;&#x5982;&#x4F55;&#x5206;&#x5757;&#x4E0A;&#x4F20;&#x6216;&#x65AD;&#x70B9;&#x7EED;&#x4F20;&#xFF1F;">&#x5927;&#x6587;&#x4EF6;&#x5982;&#x4F55;&#x5206;&#x5757;&#x4E0A;&#x4F20;&#x6216;&#x65AD;&#x70B9;&#x7EED;&#x4F20;&#xFF1F;</h2>
<pre><code>&#x4E00;&#x822C;&#x7684;&#x5206;&#x5757;&#x4E0A;&#x4F20;&#x90FD;&#x8981;&#x5BA2;&#x6237;&#x7AEF;&#x652F;&#x6301;&#xFF0C;&#x800C;&#x8BED;&#x8A00;&#x7684;&#x591A;&#x6837;&#x6027;&#xFF0C;&#x5BA2;&#x6237;&#x7AEF;&#x96BE;&#x4EE5;&#x7EF4;&#x62A4;&#xFF0C;&#x4F46;&#x5206;&#x5757;&#x4E0A;&#x4F20;&#x7684;&#x529F;&#x80FD;&#x53C8;&#x6709;&#x5FC5;&#x8981;&#xFF0C;&#x4E3A;&#x6B64;&#x63D0;&#x4F9B;&#x4E00;&#x4E2A;&#x7B80;&#x5355;&#x7684;&#x5B9E;&#x73B0;&#x601D;&#x8DEF;&#x3002;
&#x65B9;&#x6848;&#x4E00;&#x3001;
&#x501F;&#x52A9;linux split cat &#x5B9E;&#x73B0;&#x5206;&#x5272;&#x4E0E;&#x5408;&#x5E76;&#xFF0C;&#x5177;&#x4F53;&#x67E5;&#x770B; split &#x4E0E;&#x3000;cat &#x5E2E;&#x52A9;&#x3002;
&#x5206;&#x5272;&#xFF1A; split -b 1M filename #&#x6309;&#x6BCF;&#x4E2A;&#x6587;1M
&#x5408;&#x5E76;&#xFF1A; cat x* &gt; filename #&#x5408;&#x5E76;
&#x65B9;&#x6848;&#x4E8C;&#x3001;
&#x501F;&#x52A9;hjsplit
http://www.hjsplit.org/
&#x5177;&#x4F53;&#x81EA;&#x884C;&#x5B9E;&#x73B0;
&#x65B9;&#x6848;&#x4E09;&#x3001;
&#x5EFA;&#x8BAE;&#x7528;go&#x5B9E;&#x73B0;hjsplit&#x5206;&#x5272;&#x5408;&#x5E76;&#x529F;&#xFF0C;&#x8FD9;&#x6837;&#x5177;&#x6709;&#x8DE8;&#x5E73;&#x53F0;&#x529F;&#x80FD;&#x3002;&#xFF08;&#x672A;&#x5B9E;&#x73B0;&#xFF0C;&#x7B49;&#x4F60;&#x6765;....&#xFF09;
&#x65B9;&#x6848;&#x56DB;&#x3001;
&#x4F7F;&#x7528;&#x5185;&#x7F6E;&#x7684;&#x7EE7;&#x70B9;&#x7EED;&#x4F20;&#x529F;&#x80FD;&#xFF08;&#x4F7F;&#x7528;protocol for resumable uploads&#x534F;&#x8BAE;&#xFF0C;[&#x8BE6;&#x60C5;](https://tus.io/)&#xFF09;
&#x6CE8;&#x610F;&#xFF1A;&#x65B9;&#x6848;&#x56DB;&#x3001;&#x53EA;&#x80FD;&#x6307;&#x5B9A;&#x4E00;&#x4E2A;&#x4E0A;&#x4F20;&#x670D;&#x52A1;&#x5668;&#xFF0C;&#x4E0D;&#x652F;&#x6301;&#x540C;&#x65F6;&#x5199;&#xFF0C;&#x5E76;&#x4E14;&#x4E0A;&#x4F20;&#x7684;url&#x6709;&#x53D8;&#x5316;
&#x539F;&#x4E0A;&#x4F20;url&#xFF1A; http://10.1.5.9:8080/&lt;group&gt;/upload
&#x65AD;&#x70B9;&#x4E0A;&#x4F20;url&#xFF1A; http://10.1.5.9:8080/&lt;group&gt;/big/upload/
&#x4E0A;&#x4F20;&#x5B8C;&#x6210;&#xFF0C;&#x518D;&#x901A;&#x8FC7;&#x79D2;&#x4F20;&#x63A5;&#x53E3;&#xFF0C;&#x83B7;&#x53D6;&#x6587;&#x4EF6;&#x4FE1;&#x606F;
</code></pre><h2 id="&#x5982;&#x4F55;&#x79D2;&#x4F20;&#x6587;&#x4EF6;&#xFF1F;">&#x5982;&#x4F55;&#x79D2;&#x4F20;&#x6587;&#x4EF6;&#xFF1F;</h2>
<pre><code>&#x901A;&#x8FC7;http get&#x7684;&#x65B9;&#x5F0F;&#x8BBF;&#x95EE;&#x4E0A;&#x4F20;&#x63A5;&#x53E3;
http://10.0.5.9:8080/upload?md5=filesum&amp;output=json
&#x53C2;&#x6570;&#x8BF4;&#x660E;&#xFF1A;
md5=sum(file) &#x6587;&#x4EF6;&#x7684;&#x6458;&#x8981;&#x7B97;&#x6CD5;&#x8981;&#x4E0E;&#x6587;&#x4EF6;&#x52A1;&#x5668;&#x7684;&#x7B97;&#x6CD5;&#x4E00;&#x81F4;&#xFF08;&#x7B97;&#x6CD5;&#x652F;&#x6301;md5|sha1&#xFF09;&#xFF0C;&#x5982;&#x679C;&#x662F;&#x65AD;&#x70B9;&#x7EED;&#x4F20;&#xFF0C;&#x53EF;&#x4EE5;&#x4F7F;&#x7528;&#x6587;&#x4EF6;&#x7684;id&#xFF0C;&#x4E5F;&#x5C31;&#x662F;urlolad&#x540E;&#x7684;id
output=json|text &#x8FD4;&#x56DE;&#x7684;&#x683C;&#x5F0F;
</code></pre><h2 id="&#x96C6;&#x7FA4;&#x5982;&#x4F55;&#x89C4;&#x5212;&#x53CA;&#x5982;&#x4F55;&#x8FDB;&#x884C;&#x6269;&#x5BB9;&#xFF1F;">&#x96C6;&#x7FA4;&#x5982;&#x4F55;&#x89C4;&#x5212;&#x53CA;&#x5982;&#x4F55;&#x8FDB;&#x884C;&#x6269;&#x5BB9;&#xFF1F;</h2>
<pre><code>&#x5EFA;&#x8BAE;&#x5728;&#x524D;&#x671F;&#x89C4;&#x5212;&#x65F6;&#xFF0C;&#x5C3D;&#x91CF;&#x91C7;&#x8D2D;&#x5927;&#x5BB9;&#x91CF;&#x7684;&#x673A;&#x5668;&#x4F5C;&#x4E3A;&#x5B58;&#x50A8;&#x670D;&#x52A1;&#x5668;&#xFF0C;&#x5982;&#x679C;&#x8981;&#x4E24;&#x4E2A;&#x526F;&#x672C;&#x5C31;&#x7528;&#x4E24;&#x53F0;&#x7EC4;&#x6210;&#x4E00;&#x4E2A;&#x96C6;&#x7FA4;&#xFF0C;&#x5982;&#x679C;&#x8981;&#x4E09;&#x4E2A;&#x526F;&#x672C;
&#x5C31;&#x4E09;&#x53F0;&#x7EC4;&#x6210;&#x4E00;&#x4E2A;&#x96C6;&#x7FA4;&#x3002;&#xFF08;&#x6CE8;&#x610F;&#x6BCF;&#x53F0;&#x670D;&#x52A1;&#x5668;&#x6700;&#x597D;&#x914D;&#x7F6E;&#x4FDD;&#x6301;&#x4E00;&#x6837;&#xFF0C;&#x5E76;&#x4E14;&#x4F7F;&#x7528;raid5&#x78C1;&#x76D8;&#x9635;&#x5217;&#xFF09;
&#x5982;&#x679C;&#x63D0;&#x9AD8;&#x53EF;&#x7528;&#x6027;&#xFF0C;&#x53EA;&#x8981;&#x5728;&#x73B0;&#x5728;&#x7684;&#x96C6;&#x7FA4;peers&#x4E2D;&#x52A0;&#x5165;&#x65B0;&#x7684;&#x673A;&#x5668;&#xFF0C;&#x518D;&#x5BF9;&#x96C6;&#x7FA4;&#x8FDB;&#x884C;&#x4FEE;&#x590D;&#x5373;&#x53EF;&#x3002;
&#x4FEE;&#x590D;&#x529E;&#x6CD5; http://172.16.70.123:7080/repair?force=1 &#xFF08;&#x5EFA;&#x8BAE;&#x4F4E;&#x5CF0;&#x53D8;&#x66F4;&#xFF09;
&#x5982;&#x4F55;&#x6269;&#x5BB9;&#xFF1F;
&#x4E3A;&#x7B80;&#x5355;&#x53EF;&#x9760;&#x8D77;&#x89C1;&#xFF0C;&#x76F4;&#x63A5;&#x642D;&#x5EFA;&#x4E00;&#x4E2A;&#x65B0;&#x96C6;&#x7FA4;&#x5373;&#x53EF;&#xFF08;&#x642D;&#x5EFA;&#x5C31;&#x662F;&#x542F;&#x52A8;./fileserver&#x8FDB;&#x7A0B;&#xFF0C;&#x8BBE;&#x7F6E;&#x4E00;&#x4E0B;peers&#x7684;IP&#x5730;&#x5740;&#xFF0C;&#x4E09;&#x4E94;&#x5206;&#x949F;&#x7684;&#x4E8B;&#xFF09;
issue&#x4E2D;chengyuansen&#x540C;&#x5B66;&#x5411;&#x6211;&#x63D0;&#x8BAE;&#x4F7F;&#x7528;&#x589E;&#x52A0;&#x6269;&#x5BB9;&#x7279;&#x6027;&#xFF0C;&#x6211;&#x89C9;&#x5F97;&#x5BF9;&#x4EE3;&#x7801;&#x903B;&#x8F91;&#x53CA;&#x8FD0;&#x7EF4;&#x90FD;&#x589E;&#x52A0;&#x590D;&#x6742;&#x5EA6;&#xFF0C;&#x6682;&#x65F6;&#x6CA1;&#x6709;&#x52A0;&#x5165;&#x8FD9;&#x7279;&#x6027;&#x3002;
</code></pre><h2 id="&#x5982;&#x4F55;&#x4F7F;&#x7528;&#x8F6F;&#x94FE;&#x63A5;&#x8FDB;&#x884C;&#x5FEB;&#x901F;&#x4F53;&#x9A8C;">&#x5982;&#x4F55;&#x4F7F;&#x7528;&#x8F6F;&#x94FE;&#x63A5;&#x8FDB;&#x884C;&#x5FEB;&#x901F;&#x4F53;&#x9A8C;?</h2>
<pre><code>1.&#x5148;&#x8FD0;&#x884C;./fileserver &#x751F;&#x6210;&#x76EE;&#x5F55;&#x53CA;&#x914D;&#x7F6E;&#x6587;&#x4EF6;&#x7B49;
2.&#x5220;&#x9664;&#x521A;&#x751F;&#x6210;&#x7684;files&#x76EE;&#x5F55;
3.&#x5BF9;&#x5C06;&#x8981;&#x8FDB;&#x884C;&#x4F53;&#x9A8C;&#x7684;&#x76EE;&#x5F55;&#x8F6F;&#x94FE;&#x63A5;&#x5230;files&#x76EE;&#x5F55;
4.&#x542F;&#x52A8;&#x670D;&#x52A1;&#x5373;&#x53EF;&#x8FDB;&#x884C;&#x4F53;&#x68C0;
</code></pre><h2 id="&#x8BBF;&#x95EE;&#x9650;&#x5236;&#x95EE;&#x9898;">&#x8BBF;&#x95EE;&#x9650;&#x5236;&#x95EE;&#x9898;</h2>
<pre><code>&#x51FA;&#x4E8E;&#x5B89;&#x5168;&#x8003;&#x8651;,&#x7BA1;&#x7406;API&#x53EA;&#x80FD;&#x5728;&#x7FA4;&#x96C6;&#x5185;&#x90E8;&#x8C03;&#x7528;&#x6216;&#x8005;&#x7528;127.0.0.1&#x8C03;&#x7528;.
</code></pre><h2 id="&#x5982;&#x4F55;&#x67E5;&#x770B;&#x8F6F;&#x4EF6;&#x7248;&#x672C;">&#x5982;&#x4F55;&#x67E5;&#x770B;&#x8F6F;&#x4EF6;&#x7248;&#x672C;</h2>
<pre><code>&#x4ECE;v1.2.9&#x5F00;&#x59CB;&#x652F;&#x6301;&#x7248;&#x672C;&#x67E5;&#x770B;
&#x547D;&#x4EE4;&#xFF1A;./fileserver version
</code></pre><h2 id="&#x6587;&#x6863;&#x627E;&#x4E0D;&#x5230;&#x600E;&#x4E48;&#x529E;&#xFF1F;">&#x6587;&#x6863;&#x627E;&#x4E0D;&#x5230;&#x600E;&#x4E48;&#x529E;&#xFF1F;</h2>
<pre><code>&#x7531;&#x4E8E;&#x5386;&#x53F2;&#x539F;&#x56E0;&#xFF0C;&#x90E8;&#x5206;&#x6587;&#x4EF6;&#x8FD8;&#x5728;&#x9879;&#x76EE;&#x7684;wiki&#x4E2D;
https://github.com/sjqzhang/go-fastdfs/wiki
</code></pre><h4 id="&#x6350;&#x8D60;"><a href="https://raw.githubusercontent.com/sjqzhang/go-fastdfs/master/doc/pay.png" target="_blank">&#x6350;&#x8D60;</a></h4>
</section>
</div>
<div class="search-results">
<div class="has-results">
<h1 class="search-results-title"><span class='search-results-count'></span> results matching "<span class='search-query'></span>"</h1>
<ul class="search-results-list"></ul>
</div>
<div class="no-results">
<h1 class="search-results-title">No results matching "<span class='search-query'></span>"</h1>
</div>
</div>
</div>
</div>
</div>
</div>
<a href="api.html" class="navigation navigation-prev " aria-label="Previous page: 管理API">
<i class="fa fa-angle-left"></i>
</a>
<a href="QA.html" class="navigation navigation-next " aria-label="Next page: 常见问题">
<i class="fa fa-angle-right"></i>
</a>
</div>
<script>
var gitbook = gitbook || [];
gitbook.push(function() {
gitbook.page.hasChanged({"page":{"title":"问题汇总","level":"1.9","depth":1,"next":{"title":"常见问题","level":"1.9.1","depth":2,"path":"QA.md","ref":"QA.md","articles":[]},"previous":{"title":"管理API","level":"1.8","depth":1,"path":"api.md","ref":"api.md","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":[],"pluginsConfig":{"highlight":{},"search":{},"lunr":{"maxIndexSize":1000000,"ignoreSpecialCharacters":false},"sharing":{"facebook":true,"twitter":true,"google":false,"weibo":false,"instapaper":false,"vk":false,"all":["facebook","google","twitter","weibo","instapaper"]},"fontsettings":{"theme":"white","family":"sans","size":2},"theme-default":{"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"},"showLevel":false}},"structure":{"langs":"LANGS.md","readme":"README.md","glossary":"GLOSSARY.md","summary":"SUMMARY.md"},"pdf":{"pageNumbers":true,"fontSize":12,"fontFamily":"Arial","paperSize":"a4","chapterMark":"pagebreak","pageBreaksBefore":"/","margin":{"right":62,"left":62,"top":56,"bottom":56}},"styles":{"website":"styles/website.css","pdf":"styles/pdf.css","epub":"styles/epub.css","mobi":"styles/mobi.css","ebook":"styles/ebook.css","print":"styles/print.css"}},"file":{"path":"QA.md","mtime":"2021-11-06T14:29:12.382Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2021-11-06T14:32:36.598Z"},"basePath":".","book":{"language":""}});
});
</script>
</div>
<script src="gitbook/gitbook.js"></script>
<script src="gitbook/theme.js"></script>
<script src="gitbook/gitbook-plugin-search/search-engine.js"></script>
<script src="gitbook/gitbook-plugin-search/search.js"></script>
<script src="gitbook/gitbook-plugin-lunr/lunr.min.js"></script>
<script src="gitbook/gitbook-plugin-lunr/search-lunr.js"></script>
<script src="gitbook/gitbook-plugin-sharing/buttons.js"></script>
<script src="gitbook/gitbook-plugin-fontsettings/fontsettings.js"></script>
</body>
</html>