在gofastdfs中,如果是使用斷點續傳,上傳后,獲取的文件地址要做響應的置換,獲取真正的地址。
先看html的代碼
<head>
<meta charset="utf-8" />
<title>go-fastdfs</title>
<link href="https://transloadit.edgly.net/releases/uppy/v0.30.0/dist/uppy.min.css" rel="stylesheet"></head>
<body>
<div id="stdUpload" style="display:none;"></div>
<div>
<div id="drag-drop-area"></div>
<script src="https://transloadit.edgly.net/releases/uppy/v0.30.0/dist/uppy.min.js"></script>
<script>var uppy = Uppy.Core().use(Uppy.Dashboard, {
inline: true,
target: '#drag-drop-area'
}).use(Uppy.Tus, {
endpoint: 'http://192.168.1.117:8080/group1/big/upload/'
})
uppy.on('complete', (result) => {
console.info("result:"+JSON.stringify(result));
// console.log(result) console.log('Upload complete! We’ve uploaded these files:', result.successful)
})
uppy.on('file-added', (file) => {
//uppy.setFileMeta(file)
// meata的內容保存在header中的Upload-Metadata中,已逗號分隔,key以空格分隔,值用base64加密
//console.info("file:"+JSON.stringify(file));
console.info("file名稱:"+JSON.stringify(file));
uppy.setMeta({ auth_token: '9ee60e59-cb0f-4578-aaba-29b9fc2919ca',callback_url:'http://127.0.0.1/callback',filename:file.name,rename:file.name})
})
//uppy.setMeta({ auth_token: '9ee60e59-cb0f-4578-aaba-29b9fc2919ca',callback_url:'http://127.0.0.1/callback' ,filename:'自定義文件名','path':'自定義path',scene:'自定義場景' })//這里是傳遞上傳的認證參數,callback_url參數中 id為文件的ID,info 文轉的基本信息json
//uppy.setMeta({ auth_token: '9ee60e59-cb0f-4578-aaba-29b9fc2919ca',callback_url:'http://127.0.0.1/callback',filename:'b.zip'})//自定義參數與普通上傳類似(雖然支持自定義,建議不要自定義,海量文件情況下,自定義很可能給自已給埋坑)
</script>
</div>
</body>
</html>
上傳后獲取的地址一般為 http://192.168.1.117:8080/group1/big/upload/8d19f01618fde106065f1a2e9e1eafd9這樣。
通過get方法 用下面的地址http://192.168.1.117:8080/group1/upload?md5=8d19f01618fde106065f1a2e9e1eafd9&output=json獲取新的地址。主要新版的gofastdfs默認都會有group1(集群名)。8d19f01618fde106065f1a2e9e1eafd9 為上面返回地址中,最后的字符串值。
另外注意設置文件名。否則下載的內容為二進制文件,不帶擴展名的。