在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 为上面返回地址中,最后的字符串值。
另外注意设置文件名。否则下载的内容为二进制文件,不带扩展名的。