modify authentication download

This commit is contained in:
coding 2019-11-28 14:40:34 +08:00
parent f028f077a2
commit fc2e5299bb
10 changed files with 53 additions and 221 deletions

226
QA.html

File diff suppressed because one or more lines are too long

View File

@ -699,7 +699,7 @@ force:是否强行修复(0|1)
<script>
var gitbook = gitbook || [];
gitbook.push(function() {
gitbook.page.hasChanged({"page":{"title":"管理API","level":"1.8","depth":1,"next":{"title":"问题汇总","level":"1.9","depth":1,"path":"QA.md","ref":"QA.md","articles":[{"title":"常见问题","level":"1.9.1","depth":2,"path":"QA.md","ref":"QA.md","articles":[]},{"title":"维护问题","level":"1.9.2","depth":2,"path":"QA.md","ref":"QA.md","articles":[]}]},"previous":{"title":"Javascript","level":"1.7.2","depth":2,"anchor":"#js","path":"breakpoint.md","ref":"breakpoint.md#js","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["livereload"],"pluginsConfig":{"livereload":{},"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":"api.md","mtime":"2019-08-23T03:25:24.133Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2019-11-04T03:24:31.908Z"},"basePath":".","book":{"language":""}});
gitbook.page.hasChanged({"page":{"title":"管理API","level":"1.8","depth":1,"next":{"title":"问题汇总","level":"1.9","depth":1,"path":"QA.md","ref":"QA.md","articles":[{"title":"常见问题","level":"1.9.1","depth":2,"path":"QA.md","ref":"QA.md","articles":[]},{"title":"维护问题","level":"1.9.2","depth":2,"path":"QA.md","ref":"QA.md","articles":[]}]},"previous":{"title":"Javascript","level":"1.7.2","depth":2,"anchor":"#js","path":"breakpoint.md","ref":"breakpoint.md#js","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["livereload"],"pluginsConfig":{"livereload":{},"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":"api.md","mtime":"2019-08-23T03:25:24.133Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2019-11-28T06:39:40.626Z"},"basePath":".","book":{"language":""}});
});
</script>
</div>

View File

@ -626,17 +626,20 @@ app = Flask(__name__)
<span class="hljs-function"><span class="hljs-keyword">def</span> <span class="hljs-title">index</span><span class="hljs-params">()</span>:</span>
auth_token = request.form.get(<span class="hljs-string">&quot;auth_token&quot;</span>) <span class="hljs-comment"># check auth_token here</span>
print(auth_token)
<span class="hljs-keyword">return</span> <span class="hljs-string">&apos;ok&apos;</span> <span class="hljs-comment">#success</span>
<span class="hljs-keyword">if</span> auth_token==<span class="hljs-string">&apos;abc&apos;</span>:
<span class="hljs-keyword">return</span> <span class="hljs-string">&apos;ok&apos;</span> <span class="hljs-comment">#success</span>
<span class="hljs-keyword">else</span>:
<span class="hljs-keyword">return</span> <span class="hljs-string">&apos;fail&apos;</span>
<span class="hljs-keyword">if</span> __name__ == <span class="hljs-string">&apos;__main__&apos;</span>:
app.run(debug=<span class="hljs-keyword">True</span>)
app.run(host=<span class="hljs-string">&apos;0.0.0.0&apos;</span>,debug=<span class="hljs-keyword">True</span>)
</code></pre>
<h4 id="&#x542F;&#x52A8;&#x670D;&#x52A1;">&#x542F;&#x52A8;&#x670D;&#x52A1;</h4>
<pre><code>python app.py
</code></pre><h4 id="&#x4E0A;&#x4F20;&#x793A;&#x4F8B;">&#x4E0A;&#x4F20;&#x793A;&#x4F8B;</h4>
<pre><code class="lang-python"><span class="hljs-keyword">import</span> requests
url = <span class="hljs-string">&apos;http://10.1.5.9:8080/upload&apos;</span>
url = <span class="hljs-string">&apos;http://10.1.5.9:8080/group1/upload&apos;</span>
files = {<span class="hljs-string">&apos;file&apos;</span>: open(<span class="hljs-string">&apos;report.xls&apos;</span>, <span class="hljs-string">&apos;rb&apos;</span>)}
options={<span class="hljs-string">&apos;output&apos;</span>:<span class="hljs-string">&apos;json&apos;</span>,<span class="hljs-string">&apos;path&apos;</span>:<span class="hljs-string">&apos;&apos;</span>,<span class="hljs-string">&apos;scene&apos;</span>:<span class="hljs-string">&apos;&apos;</span>,<span class="hljs-string">&apos;auth_token&apos;</span>:<span class="hljs-string">&apos;2b33b60980b1a37454f008daf7e5d558&apos;</span>} <span class="hljs-comment">#&#x53C2;&#x9605;&#x6D4F;&#x89C8;&#x5668;&#x4E0A;&#x4F20;&#x7684;&#x9009;&#x9879;</span>
options={<span class="hljs-string">&apos;output&apos;</span>:<span class="hljs-string">&apos;json&apos;</span>,<span class="hljs-string">&apos;path&apos;</span>:<span class="hljs-string">&apos;&apos;</span>,<span class="hljs-string">&apos;scene&apos;</span>:<span class="hljs-string">&apos;&apos;</span>,<span class="hljs-string">&apos;auth_token&apos;</span>:<span class="hljs-string">&apos;abc&apos;</span>} <span class="hljs-comment">#&#x53C2;&#x9605;&#x6D4F;&#x89C8;&#x5668;&#x4E0A;&#x4F20;&#x7684;&#x9009;&#x9879;</span>
r = requests.post(url,data=options, files=files)
print(r.text)
</code></pre>
@ -684,7 +687,7 @@ print(r.text)
<script>
var gitbook = gitbook || [];
gitbook.push(function() {
gitbook.page.hasChanged({"page":{"title":"认证","level":"1.5","depth":1,"next":{"title":"按文件指纹认证","level":"1.5.1","depth":2,"anchor":"#fingerprint","path":"authentication.md","ref":"authentication.md#fingerprint","articles":[]},"previous":{"title":"海量集群安装(推荐)","level":"1.4.5","depth":2,"anchor":"#big-cluster","path":"install.md","ref":"install.md#big-cluster","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["livereload"],"pluginsConfig":{"livereload":{},"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":"authentication.md","mtime":"2019-08-27T04:05:29.569Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2019-11-04T03:24:31.908Z"},"basePath":".","book":{"language":""}});
gitbook.page.hasChanged({"page":{"title":"认证","level":"1.5","depth":1,"next":{"title":"按文件指纹认证","level":"1.5.1","depth":2,"anchor":"#fingerprint","path":"authentication.md","ref":"authentication.md#fingerprint","articles":[]},"previous":{"title":"海量集群安装(推荐)","level":"1.4.5","depth":2,"anchor":"#big-cluster","path":"install.md","ref":"install.md#big-cluster","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["livereload"],"pluginsConfig":{"livereload":{},"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":"authentication.md","mtime":"2019-11-28T06:38:39.157Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2019-11-28T06:39:40.626Z"},"basePath":".","book":{"language":""}});
});
</script>
</div>

View File

@ -2,7 +2,7 @@
```
一、如果是海量存储不要开启文件token认证功能减少性能开消。
二、尽量用标准上传上传后业务保存path在业务用的时候再并接上域名方便迁移扩展等
三、如果使用断点续传上传后一定要用文件id置换成path存储如何置换看/API文档为后面访问减少性能开消。
三、如果使用断点续传上传后一定要用文件id置换成path存储如何置换看/API文档秒传接口),为后面访问减少性能开消。
四、尽量使用物理服务器部署因为主要压力或性能来自于IO
五、线上业务尽量使用nginx+gofastdfs部署架构(均衡算法使用ip_hash),以满足后面的功能扩展性(nginx+lua)。
六、线上环境最好不要使用容器部署,容器适用于测试和功能验证。
@ -26,6 +26,8 @@ https://github.com/perfree/go-fastdfs-web
https://github.com/tus
```
## 在微信讨论群中大家都问到go-fastdfs性能怎样
```
@ -121,13 +123,13 @@ go-fastdfs的文件定位与其它分布式系统不同它的寻址是直接
四、认证通过后,可以上传或下载
```
## 认证无效是怎么回事?
## 下载无认证是怎么回事?
```
认证对集群内的机器无效,需要用集群以外的机器进行验证。
1.检查配置文件 auth_url 不为空,且必须有效
2.检查配置文件中的 enable_download_auth:true
3.在集群以外的机器进行下载(集群内不检查认证)
```
## 还需要安装nginx么
```

View File

@ -58,9 +58,12 @@ app = Flask(__name__)
def index():
auth_token = request.form.get("auth_token") # check auth_token here
print(auth_token)
return 'ok' #success
if auth_token=='abc':
return 'ok' #success
else:
return 'fail'
if __name__ == '__main__':
app.run(debug=True)
app.run(host='0.0.0.0',debug=True)
```
#### 启动服务
@ -71,9 +74,9 @@ python app.py
#### 上传示例
```python
import requests
url = 'http://10.1.5.9:8080/upload'
url = 'http://10.1.5.9:8080/group1/upload'
files = {'file': open('report.xls', 'rb')}
options={'output':'json','path':'','scene':'','auth_token':'2b33b60980b1a37454f008daf7e5d558'} #参阅浏览器上传的选项
options={'output':'json','path':'','scene':'','auth_token':'abc'} #参阅浏览器上传的选项
r = requests.post(url,data=options, files=files)
print(r.text)
```

View File

@ -692,7 +692,7 @@
<script>
var gitbook = gitbook || [];
gitbook.push(function() {
gitbook.page.hasChanged({"page":{"title":"断点续传\"SDK\"","level":"1.7","depth":1,"next":{"title":"GO","level":"1.7.1","depth":2,"anchor":"#go","path":"breakpoint.md","ref":"breakpoint.md#go","articles":[]},"previous":{"title":"Java流上传","level":"1.6.6.1","depth":3,"anchor":"#java-stream","path":"usage.md","ref":"usage.md#java-stream","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["livereload"],"pluginsConfig":{"livereload":{},"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":"breakpoint.md","mtime":"2019-08-29T03:43:35.178Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2019-11-04T03:24:31.908Z"},"basePath":".","book":{"language":""}});
gitbook.page.hasChanged({"page":{"title":"断点续传\"SDK\"","level":"1.7","depth":1,"next":{"title":"GO","level":"1.7.1","depth":2,"anchor":"#go","path":"breakpoint.md","ref":"breakpoint.md#go","articles":[]},"previous":{"title":"Java流上传","level":"1.6.6.1","depth":3,"anchor":"#java-stream","path":"usage.md","ref":"usage.md#java-stream","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["livereload"],"pluginsConfig":{"livereload":{},"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":"breakpoint.md","mtime":"2019-08-29T03:43:35.178Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2019-11-28T06:39:40.626Z"},"basePath":".","book":{"language":""}});
});
</script>
</div>

View File

@ -696,7 +696,7 @@
<script>
var gitbook = gitbook || [];
gitbook.push(function() {
gitbook.page.hasChanged({"page":{"title":"愿景","level":"1.1","depth":1,"next":{"title":"背景","level":"1.2","depth":1,"anchor":"#background","path":"README.md","ref":"README.md#background","articles":[{"title":"go-fastdfs是什么","level":"1.2.1","depth":2,"anchor":"#what","path":"README.md","ref":"README.md#what","articles":[]}]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["livereload"],"pluginsConfig":{"livereload":{},"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":"README.md","mtime":"2019-09-09T06:17:48.684Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2019-11-04T03:24:31.908Z"},"basePath":".","book":{"language":""}});
gitbook.page.hasChanged({"page":{"title":"愿景","level":"1.1","depth":1,"next":{"title":"背景","level":"1.2","depth":1,"anchor":"#background","path":"README.md","ref":"README.md#background","articles":[{"title":"go-fastdfs是什么","level":"1.2.1","depth":2,"anchor":"#what","path":"README.md","ref":"README.md#what","articles":[]}]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["livereload"],"pluginsConfig":{"livereload":{},"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":"README.md","mtime":"2019-09-09T06:17:48.684Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2019-11-28T06:39:40.626Z"},"basePath":".","book":{"language":""}});
});
</script>
</div>

View File

@ -753,7 +753,7 @@ http {
<script>
var gitbook = gitbook || [];
gitbook.push(function() {
gitbook.page.hasChanged({"page":{"title":"安装","level":"1.4","depth":1,"next":{"title":"极速体验","level":"1.4.1","depth":2,"anchor":"#quick","path":"install.md","ref":"install.md#quick","articles":[]},"previous":{"title":"go-fastdfs优点","level":"1.3.1","depth":2,"anchor":"#advantage","path":"README.md","ref":"README.md#advantage","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["livereload"],"pluginsConfig":{"livereload":{},"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":"install.md","mtime":"2019-10-18T09:41:45.852Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2019-11-04T03:24:31.908Z"},"basePath":".","book":{"language":""}});
gitbook.page.hasChanged({"page":{"title":"安装","level":"1.4","depth":1,"next":{"title":"极速体验","level":"1.4.1","depth":2,"anchor":"#quick","path":"install.md","ref":"install.md#quick","articles":[]},"previous":{"title":"go-fastdfs优点","level":"1.3.1","depth":2,"anchor":"#advantage","path":"README.md","ref":"README.md#advantage","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["livereload"],"pluginsConfig":{"livereload":{},"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":"install.md","mtime":"2019-10-18T09:41:45.852Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2019-11-28T06:39:40.626Z"},"basePath":".","book":{"language":""}});
});
</script>
</div>

File diff suppressed because one or more lines are too long

View File

@ -820,7 +820,7 @@ pom&#x6587;&#x4EF6;&#x4F9D;&#x8D56;</p>
<script>
var gitbook = gitbook || [];
gitbook.push(function() {
gitbook.page.hasChanged({"page":{"title":"语言\"SDK\"","level":"1.6","depth":1,"next":{"title":"统一说明(重要)","level":"1.6.1","depth":2,"anchor":"#description","path":"usage.md","ref":"usage.md#description","articles":[]},"previous":{"title":"用户自定义认证","level":"1.5.3","depth":2,"anchor":"#custom","path":"authentication.md","ref":"authentication.md#custom","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["livereload"],"pluginsConfig":{"livereload":{},"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":"usage.md","mtime":"2019-11-04T03:26:02.622Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2019-11-04T03:24:31.908Z"},"basePath":".","book":{"language":""}});
gitbook.page.hasChanged({"page":{"title":"语言\"SDK\"","level":"1.6","depth":1,"next":{"title":"统一说明(重要)","level":"1.6.1","depth":2,"anchor":"#description","path":"usage.md","ref":"usage.md#description","articles":[]},"previous":{"title":"用户自定义认证","level":"1.5.3","depth":2,"anchor":"#custom","path":"authentication.md","ref":"authentication.md#custom","articles":[]},"dir":"ltr"},"config":{"gitbook":"*","theme":"default","variables":{},"plugins":["livereload"],"pluginsConfig":{"livereload":{},"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":"usage.md","mtime":"2019-11-04T03:26:02.622Z","type":"markdown"},"gitbook":{"version":"3.2.3","time":"2019-11-28T06:39:40.626Z"},"basePath":".","book":{"language":""}});
});
</script>
</div>