日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

dfs文件服务器访问权限,fastDFS 文件服务器访问

發布時間:2025/3/11 编程问答 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 dfs文件服务器访问权限,fastDFS 文件服务器访问 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

鑒權 token 獲取

token 由文件服務器管理員分配

接口定義

上傳文件

請求 URL:

請求方式:

GET/POST

參數形式:

form-data

參數:

參數名位置類型說明是否必填

access_tokenheaderString用戶 token是

fileurlMultipartFile文件是

返回:

參數名必選類型說明

msg是String提示

code是Integer錯誤代碼

data是String數據

data 域內容

參數名必選類型說明

filePath是String文件的存儲位置

fileName是Integer文件的原始名稱

fileType是String文件類型

httpUrl是String文件的訪問地址(未開啟防盜鏈時可用)

返回示例

{

"msg": "操作成功",

"code": 200,

"data": {

"filePath": "group1/M00/00/0D/wKjcAl-SNgmAVJK7AACEAGBrbtI245.jpg",

"fileName": "timg.jpg",

"fileType": "jpg",

"httpUrl": "http://192.168.220.2:80/group1/M00/00/0D/wKjcAl-SNgmAVJK7AACEAGBrbtI245.jpg"

}

}

備注

獲取防盜鏈地址

請求 URL:

請求方式:

GET/POST

參數形式:

form-data

參數:

參數名位置類型說明是否必填

access_tokenheaderString用戶 token是

filePathurlString文件路徑是

返回:

參數名必選類型說明

msg是String提示

code是Integer錯誤代碼

data是String文件的防盜鏈訪問路徑

返回示例

{

"msg": "操作成功",

"code": 200,

"data": "http://192.168.220.2:80/group1/M00/00/0D/wKjcAl-SNgmAVJK7AACEAGBrbtI245.jpg?token=639e5738e7c457eb2f061fc0d71a3165&ts=1603417665"

}

備注

刪除文件

請求 URL:

請求方式:

GET/POST

參數形式:

form-data

參數:

參數名位置類型說明是否必填

access_tokenheaderString用戶 token是

filePathurlString文件路徑是

返回:

參數名必選類型說明

msg是String提示

code是Integer錯誤代碼

data是Integer0 為正常響應,非 0 為異常響應,文件不存在等

返回示例

{

"msg": "操作成功",

"code": 200,

"data": 0

}

備注

java 調用工具類

import org.apache.http.HttpResponse;

import org.apache.http.client.HttpClient;

import org.apache.http.client.methods.HttpPost;

import org.apache.http.entity.StringEntity;

import org.apache.http.impl.client.DefaultHttpClient;

import org.slf4j.Logger;

import org.slf4j.LoggerFactory;

import org.springframework.web.multipart.MultipartFile;

import java.io.*;

import java.net.HttpURLConnection;

import java.net.URL;

import java.util.HashMap;

import java.util.Map;

public class HttpClientUtil {

private static Logger logger = LoggerFactory.getLogger(HttpClientUtil.class);

/**

* 路徑分隔符

*/

public static final String SEPARATOR = "/";

/**

* Point

*/

public static final String POINT = ".";

/**

* ContentType

*/

public static final Map EXT_MAPS = new HashMap<>();

static {

initExt();

}

public static void initExt() {

// image

EXT_MAPS.put("png", "image/png");

EXT_MAPS.put("gif", "image/gif");

EXT_MAPS.put("bmp", "image/bmp");

EXT_MAPS.put("ico", "image/x-ico");

EXT_MAPS.put("jpeg", "image/jpeg");

EXT_MAPS.put("jpg", "image/jpeg");

// 壓縮文件

EXT_MAPS.put("zip", "application/zip");

EXT_MAPS.put("rar", "application/x-rar");

// doc

EXT_MAPS.put("pdf", "application/pdf");

EXT_MAPS.put("ppt", "application/vnd.ms-powerpoint");

EXT_MAPS.put("xls", "application/vnd.ms-excel");

EXT_MAPS.put("xlsx", "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");

EXT_MAPS.put("pptx", "application/vnd.openxmlformats-officedocument.presentationml.presentation");

EXT_MAPS.put("doc", "application/msword");

EXT_MAPS.put("doc", "application/wps-office.doc");

EXT_MAPS.put("docx", "application/vnd.openxmlformats-officedocument.wordprocessingml.document");

EXT_MAPS.put("txt", "text/plain");

// 音頻

EXT_MAPS.put("mp4", "video/mp4");

EXT_MAPS.put("flv", "video/x-flv");

}

/**

* @Title: postRestData

* @TitleExplain: post請求接口

* @Description: post請求接口

* @param urlStr 請求url

* @return String post響應

*/

public static String postDataLikeFormData(String urlStr,MultipartFile file,String fastdfsAccessToken) {

String result = "";

// 換行符

final String newLine = "\r\n";

final String boundaryPrefix = "--";

// 定義數據分隔線

String BOUNDARY = "========7d4a6d158c9";

// 服務器的域名

URL url =null;

HttpURLConnection conn=null;

DataInputStream in=null;

try {

url = new URL(urlStr);

conn = (HttpURLConnection) url.openConnection();

// 設置為POST情

conn.setRequestMethod("POST");

// 發送POST請求必須設置如下兩行

conn.setDoOutput(true);

conn.setDoInput(true);

conn.setUseCaches(false);

// 設置請求頭參數

conn.setRequestProperty("connection", "Keep-Alive");

conn.setRequestProperty("Charsert", "UTF-8");

conn.setRequestProperty("access_token",fastdfsAccessToken);

conn.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + BOUNDARY);

OutputStream out = new DataOutputStream(conn.getOutputStream());

/**

* 循環輸出

*

* */

StringBuilder sb = new StringBuilder();

sb.append(boundaryPrefix);

sb.append(BOUNDARY);

sb.append(newLine);

sb.append("Content-Disposition: form-data;name=\"file\";filename=\"" + file.getOriginalFilename()

+ "\"" + newLine);

String contentType=getContentTypeByFileName(file.getOriginalFilename());

sb.append("Content-Type:"+contentType);

sb.append(newLine);

sb.append(newLine);

out.write(sb.toString().getBytes());

byte[] bufferOut = new byte[1024];

int bytes = 0;

//如果文件為空則不上傳

if (file.isEmpty() || file.getSize() <= 0) {

logger.debug("文件為空或大小為0沒有上傳fastdfs:" + file.getOriginalFilename());

return null;

}

in = new DataInputStream(file.getInputStream());

while ((bytes = in.read(bufferOut)) != -1) {

//bufferOut轉化為String之后會損失部分數據,所以之后的操作直接輸出,不轉化為string

// sb.append(new String(bufferOut));

out.write(bufferOut, 0, bytes);

}

sb.append(newLine + boundaryPrefix + BOUNDARY);

sb.append(boundaryPrefix + newLine);

byte[] end_data = (newLine + boundaryPrefix + BOUNDARY + boundaryPrefix + newLine).getBytes();

out.write(end_data);

logger.debug("請求數據為: "+sb.toString());

out.flush();

out.close();

StringBuffer sbResult = new StringBuffer();

// 定義BufferedReader輸入流來讀取URL的響應

BufferedReader reader = new BufferedReader(new InputStreamReader(

conn.getInputStream()));

String line = null;

while ((line = reader.readLine()) != null) {

//System.out.println(line);

sbResult.append(line+"\r\n");

}

reader.close();

result = sbResult.toString();

} catch (Exception e) {

logger.error("發送POST請求出現異常!" + e);

}finally {

if (conn != null) {

conn.disconnect();

try {

in.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

logger.debug("post "+urlStr +",result="+result);

return result;

}

/**

* 根據文件名獲取contentType

* */

public static String getContentTypeByFileName(String fileName){

return EXT_MAPS.get(getFilenameSuffix(fileName));

}

/**

* 獲取文件名稱的后綴

*

* @param filename 文件名 或 文件路徑

* @return 文件后綴

*/

public static String getFilenameSuffix(String filename) {

String suffix = null;

String originalFilename = filename;

if (StringUtils.isNotBlank(filename)) {

if (filename.contains(SEPARATOR)) {

filename = filename.substring(filename.lastIndexOf(SEPARATOR) + 1);

}

if (filename.contains(POINT)) {

suffix = filename.substring(filename.lastIndexOf(POINT) + 1);

} else {

if (logger.isErrorEnabled()) {

logger.error("filename error without suffix : {}", originalFilename);

}

}

}

return suffix;

}

/**

* 從指定系統獲取寫卡數據

*

* */

public static String downloadFile(String urlStr,String filePath,String fastdfsAccessToken){

String result = null;

try{

HttpClient client = new DefaultHttpClient();

StringBuffer sb=new StringBuffer(urlStr);

StringBuffer params=new StringBuffer("");

params.append("filePath=");

params.append(filePath);

HttpPost post = new HttpPost(sb.toString());

//設置header參數

post.addHeader("access_token",fastdfsAccessToken);

//設置其它參數

StringEntity stringEntity = new StringEntity(params.toString());//param參數,可以為"key1=value1&key2=value2"的一串字符串

stringEntity.setContentType("application/x-www-form-urlencoded");

post.setEntity(stringEntity);

HttpResponse resp = client.execute(post);

BufferedReader brBufferedReader = new BufferedReader(

new InputStreamReader(resp.getEntity().getContent(), "utf-8"));

StringBuffer resultSb = new StringBuffer();

String line = "";

while ((line = brBufferedReader.readLine()) != null) {

resultSb.append(line);

}

brBufferedReader.close();

result = resultSb.toString();

}catch(Exception e){

logger.error("系統異常:",e);

}

return result;

}

}

創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

總結

以上是生活随笔為你收集整理的dfs文件服务器访问权限,fastDFS 文件服务器访问的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 国产精品无码在线播放 | 女人舌吻男人茎视频 | 国产一区二区欧美 | 中文字幕观看在线 | 操操操视频 | 成人免费网址 | 713电影免费播放国语 | 亚洲av无码一区二区二三区软件 | 国产精品99久久久久久www | 在线射| 日本网站免费观看 | 国产一区二区三区免费在线观看 | 国产真人无遮挡作爱免费视频 | 国产美女作爱视频 | 少妇第一次交换又紧又爽 | av影片在线观看 | 久久午夜免费视频 | 国产一区视频在线免费观看 | 国产网址在线观看 | www.第四色| 性福利视频 | 亚洲黄色天堂 | zzjizzji亚洲日本少妇 | 国内自拍在线 | 欧美一区欧美二区 | 最新精品国产 | 午夜视频福利在线观看 | 日本jizz在线观看 | 亚洲精品一区二区口爆 | jvid在线| 欧美最猛黑人xxxx黑人猛交 | 91久久国产视频 | 在线天堂网 | 99精品国产成人一区二区 | 免费看一级 | www.4虎| 神马影院午夜伦理 | 麻豆91精品91久久久 | 草草影院第一页 | 蜜臀人妻四季av一区二区不卡 | 亚洲欧美日韩精品久久亚洲区 | 波多野在线 | 美女18网站 | 亚洲欧美第一页 | 国产精品久久综合青草亚洲AV | 午夜精品久久久久久久久久久久久蜜桃 | 欧美做爰啪啪xxxⅹ性 | 黄色小视频免费观看 | 日韩成人av在线 | 三级欧美视频 | 美女黄页网站 | 人人澡超碰碰97碰碰碰 | 草草草在线观看 | 五月天激情影院 | 96亚洲精品久久久蜜桃 | 黄网站在线免费看 | 精产国产伦理一二三区 | 亚洲免费影院 | 神马久久春色 | 六月丁香激情综合 | k8经典成人理伦片 | 美女av网址| 亚洲欧美视频一区二区 | 521av在线| 国内精品久久久久久久久久 | 校园春色自拍偷拍 | 色噜噜狠狠狠综合曰曰曰88av | 天天综合日日夜夜 | 国产日产欧洲无码视频 | 日本成人在线一区 | a级无毛片 | 日韩色视频在线观看 | 日韩精品v | 狼人综合网 | 自拍偷拍视频在线 | 九九午夜 | 天天综合人人 | 欧美久久天堂 | 国产日韩中文 | 91亚色视频在线观看 | 久久久久97 | 国产精品成人aaaa在线 | 日韩午夜精品视频 | 色窝窝无码一区二区三区 | 日本三级生活片 | 亚洲天堂男人天堂 | 永久免费在线视频 | 欧美国产精品一区二区 | 老司机在线精品视频 | 成人精品黄段子 | 天堂亚洲精品 | 国产精品www色诱视频 | 久久艹久久 | 裸体按摩www性xxxcom | 亚洲福利电影 | 久久成年人视频 | 麻豆视频一区二区 | 黄色大片aa | 成年人福利网站 |