| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289 |
- package com.cnd3b.restcontroller.enterprise.datacenter;
- import com.alibaba.fastjson.JSONArray;
- import com.alibaba.fastjson.JSONObject;
- import com.aliyun.oss.model.*;
- import com.cnd3b.common.Controller;
- import com.cnd3b.common.data.Rows;
- import com.cnd3b.common.data.SQLFactory;
- import com.cnd3b.utility.aliyun.oss.AliyunOSSConfigConstant;
- import java.io.ByteArrayInputStream;
- import java.io.File;
- import java.io.UnsupportedEncodingException;
- import java.net.URLDecoder;
- import java.util.ArrayList;
- import java.util.List;
- import static com.cnd3b.utility.aliyun.oss.AliyunOSSConfigConstant.BUCKE_NAME_1;
- import static com.cnd3b.utility.aliyun.oss.AliyunOSSConfigConstant.file_url;
- public class datacenter extends Controller {
- // String url = BUCKE_NAME_1 + "." + AliyunOSSConfigConstant.END_POINT;
- //根目录
- String rootpath = "资料中心/";
- /**
- * 构造函数
- *
- * @param content
- */
- public datacenter(JSONObject content) {
- super(content);
- }
- /**
- * 创建文件夹(OSS)
- *
- * @return
- */
- public String createFolder() {
- String folderName = content.getString("folderName");
- if (folderName.equals("") || folderName == null) {
- return getErrReturnObject().setErrMsg("文件夹名称不能为空").toString();
- }
- ossClient.putObject(new PutObjectRequest(BUCKE_NAME_1, rootpath + folderName, new ByteArrayInputStream("".getBytes())));
- ossClient.shutdown();
- return getSucReturnObject().toString();
- }
- /**
- * 删除文件夹(OSS)
- *
- * @return
- */
- public String deleteFolder() {
- JSONArray jsonArray = content.getJSONArray("folderName");
- if (jsonArray == null || jsonArray.size() == 0) {
- return getErrReturnObject().setErrMsg("文件夹名称不能为空").toString();
- }
- ArrayList<String> keysList = new ArrayList<>();
- for (Object obj : jsonArray) {
- keysList.add(obj.toString());
- }
- DeleteObjectsRequest request = new DeleteObjectsRequest(BUCKE_NAME_1);
- request.setKeys(keysList);
- // 发起deleteObjects请求。
- ossClient.deleteObjects(request);
- // // 查看删除结果。
- // for (String o : delObjResult.getDeletedObjects()) {
- // String keyName = null;
- // try {
- // keyName = URLDecoder.decode(o, "UTF-8");
- // } catch (UnsupportedEncodingException e) {
- // e.printStackTrace();
- // }
- // System.out.println("delete key name: " + keyName);
- // }
- ossClient.shutdown();
- SQLFactory sqlFactory = new SQLFactory(this, "删除文件夹");
- sqlFactory.addParameter_in("fpath", keysList);
- String sql = sqlFactory.getSQL();
- dbConnect.runSqlUpdate(sql);
- return getSucReturnObject().toString();
- }
- /**
- * 上传文件(OSS)
- *
- * @return
- */
- public String uploadFile() {
- String filePath = content.getString("filePath");
- String folderPath = content.getString("folderPath");
- if (filePath.equals("") || filePath == null) {
- return getErrReturnObject().setErrMsg("文件路径不能为空").toString();
- }
- if (folderPath.equals("") || folderPath == null) {
- folderPath = "";
- }
- File file = new File(filePath);
- if (!file.exists()) {
- return getErrReturnObject().setErrMsg("文件不存在").toString();
- }
- String key = folderPath + file.getName();
- System.err.println(key);
- ossClient.putObject(new PutObjectRequest(BUCKE_NAME_1, rootpath + key, file));
- ossClient.shutdown();
- return getSucReturnObject().toString();
- }
- /**
- * 删除文件(OSS)
- *
- * @return
- */
- public String deleteFile() {
- JSONArray jsonArray = content.getJSONArray("folderName");
- if (jsonArray == null || jsonArray.size() == 0) {
- return getErrReturnObject().setErrMsg("文件夹名称不能为空").toString();
- }
- List<String> keysList = new ArrayList<>();
- for (Object obj : jsonArray) {
- keysList.add(obj.toString());
- }
- DeleteObjectsRequest request = new DeleteObjectsRequest(BUCKE_NAME_1);
- request.setKeys(keysList);
- // 发起deleteObjects请求。
- DeleteObjectsResult delObjResult = ossClient.deleteObjects(request);
- // 查看删除结果。
- for (String o : delObjResult.getDeletedObjects()) {
- String keyName = null;
- try {
- keyName = URLDecoder.decode(o, "UTF-8");
- } catch (UnsupportedEncodingException e) {
- e.printStackTrace();
- }
- System.out.println("delete key name: " + keyName);
- }
- ossClient.shutdown();
- return getSucReturnObject().toString();
- }
- /**
- * 获取根目录
- *
- * @return
- */
- public String getFolders() {
- // 构造ListObjectsRequest请求。
- ListObjectsRequest listObjectsRequest = new ListObjectsRequest(BUCKE_NAME_1);
- // 设置正斜线(/)为文件夹的分隔符。
- listObjectsRequest.setDelimiter("/");
- // 列出fun目录下的所有文件和文件夹。
- listObjectsRequest.setPrefix("资料中心/");
- ObjectListing listing = ossClient.listObjects(listObjectsRequest);
- // 遍历所有commonPrefix。
- ArrayList<String> commonPrefixList = new ArrayList<>();
- for (String commonPrefix : listing.getCommonPrefixes()) {
- String selectSql = "SELECT*FROM tfolder WHERE fpath='" + commonPrefix + "'";
- Rows rows = dbConnect.runSqlQuery(selectSql);
- if (rows.isEmpty()) {
- Long id = createTableID("tfolder", "tfolderid");
- String sql = "INSERT INTO tfolder(tfolderid,rmkenable,fpath,createdate) VALUES(" + id + ", 0,'" + commonPrefix + "','" + getDateTime_Str() + "')";
- dbConnect.runSqlUpdate(sql);
- }
- commonPrefixList.add(commonPrefix);
- }
- // 关闭OSSClient。
- ossClient.shutdown();
- JSONObject object = new JSONObject();
- object.put("folder", commonPrefixList);
- SQLFactory sqlFactory = new SQLFactory(this, "查询根目录");
- sqlFactory.addParameter_in("fpath", commonPrefixList);
- String sql = sqlFactory.getSQL();
- Rows rows = dbConnect.runSqlQuery(sql);
- return getSucReturnObject().setData(rows).toString();
- }
- /**
- * 获取文件夹
- *
- * @return
- */
- public String getAllFolders() {
- // 构造ListObjectsRequest请求。
- ListObjectsRequest listObjectsRequest = new ListObjectsRequest(BUCKE_NAME_1);
- // 列举文件。
- ObjectListing listing = ossClient.listObjects(listObjectsRequest);
- //遍历所有文件。
- //System.out.println("Objects:");
- //List<String> stringList = new ArrayList<>();
- for (OSSObjectSummary objectSummary : listing.getObjectSummaries()) {
- System.out.println(objectSummary.getKey());
- if (objectSummary.getKey().endsWith("/")) {
- String key = objectSummary.getKey();
- //stringList.add(key);
- String selectSql = "SELECT*FROM tfolder WHERE fpath='" + key + "'";
- Rows rows = dbConnect.runSqlQuery(selectSql);
- if (rows.isEmpty()) {
- Long id = createTableID("tfolder", "tfolderid");
- String sql = "INSERT INTO tfolder(tfolderid,rmkenable,fpath,createdate) VALUES(" + id + ", 0,'" + objectSummary.getKey() + "','" + getDateTime_Str() + "')";
- dbConnect.runSqlUpdate(sql);
- }
- }
- }
- // 关闭OSSClient。
- ossClient.shutdown();
- String sql = "SELECT tfolderid,fpath FROM tfolder ORDER BY tfolderid ";
- Rows rows = dbConnect.runSqlQuery(sql);
- return getSucReturnObject().setData(rows).toString();
- }
- /**
- * 获取指定目录下的文件和文件夹
- *
- * @return
- */
- public String getFilesOfPath() {
- String folderPath = content.getString("folderPath");
- // 构造ListObjectsRequest请求。
- ListObjectsRequest listObjectsRequest = new ListObjectsRequest(BUCKE_NAME_1);
- // 设置正斜线(/)为文件夹的分隔符。
- listObjectsRequest.setDelimiter("/");
- // 列出fun目录下的所有文件和文件夹。
- listObjectsRequest.setPrefix(folderPath);
- ObjectListing listing = ossClient.listObjects(listObjectsRequest);
- // 遍历所有文件。
- System.out.println("Objects:");
- List<JSONObject> objectSummaryList = new ArrayList<>();
- for (OSSObjectSummary objectSummary : listing.getObjectSummaries()) {
- if (!objectSummary.getKey().equals(folderPath)) {
- JSONObject object = new JSONObject();
- object.put("key", objectSummary.getKey());
- object.put("name", objectSummary.getKey().replace(folderPath, ""));
- object.put("size", objectSummary.getSize() / 1024);
- object.put("time", getDateTime_Str(objectSummary.getLastModified()));
- object.put("url", file_url + "/" + objectSummary.getKey());
- objectSummaryList.add(object);
- }
- }
- // 遍历所有commonPrefix。
- System.out.println("CommonPrefixes:");
- List<JSONObject> commonPrefixList = new ArrayList<>();
- for (String commonPrefix : listing.getCommonPrefixes()) {
- JSONObject object = new JSONObject();
- object.put("folderpath", commonPrefix);
- commonPrefixList.add(object);
- }
- // 关闭OSSClient。
- ossClient.shutdown();
- JSONObject object = new JSONObject();
- object.put("files", objectSummaryList);
- object.put("folder", commonPrefixList);
- return getSucReturnObject().setData(object).toString();
- }
- }
|