|
|
@@ -0,0 +1,202 @@
|
|
|
+package com.cnd3b.restcontroller.enterprise.datacenter;
|
|
|
+
|
|
|
+import com.alibaba.fastjson.JSONArray;
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
+import com.aliyun.oss.OSS;
|
|
|
+import com.aliyun.oss.OSSClientBuilder;
|
|
|
+import com.aliyun.oss.model.*;
|
|
|
+import com.cnd3b.common.Controller;
|
|
|
+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;
|
|
|
+
|
|
|
+
|
|
|
+public class datacenter extends Controller {
|
|
|
+
|
|
|
+ //仓库名称-资料中心
|
|
|
+ String BUCKE_NAME = "js-data-1";
|
|
|
+ OSS ossClient;
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 构造函数
|
|
|
+ *
|
|
|
+ * @param content
|
|
|
+ */
|
|
|
+ public datacenter(JSONObject content) {
|
|
|
+ super(content);
|
|
|
+ if (ossClient == null) {
|
|
|
+ ossClient = new OSSClientBuilder().build(AliyunOSSConfigConstant.END_POINT, AliyunOSSConfigConstant.AccessKey_ID, AliyunOSSConfigConstant.AccessKey_Secret);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 创建文件夹(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, 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();
|
|
|
+ }
|
|
|
+ List<String> keysList = new ArrayList<>();
|
|
|
+ for (Object obj : jsonArray) {
|
|
|
+ keysList.add(obj.toString());
|
|
|
+ }
|
|
|
+ DeleteObjectsRequest request = new DeleteObjectsRequest(BUCKE_NAME);
|
|
|
+ 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();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 上传文件(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, 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);
|
|
|
+ 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() {
|
|
|
+
|
|
|
+
|
|
|
+ return "";
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 获取文件
|
|
|
+ *
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ public String getFiles() {
|
|
|
+
|
|
|
+
|
|
|
+ return "";
|
|
|
+ }
|
|
|
+
|
|
|
+ public String getAllFolders() {
|
|
|
+ String folderPath = content.getString("folderPath");
|
|
|
+ // 构造ListObjectsRequest请求。
|
|
|
+ ListObjectsRequest listObjectsRequest = new ListObjectsRequest(BUCKE_NAME);
|
|
|
+ // 设置正斜线(/)为文件夹的分隔符。
|
|
|
+ listObjectsRequest.setDelimiter("/");
|
|
|
+ // 列出fun目录下的所有文件和文件夹。
|
|
|
+ listObjectsRequest.setPrefix(folderPath);
|
|
|
+ ObjectListing listing = ossClient.listObjects(listObjectsRequest);
|
|
|
+ // 遍历所有文件。
|
|
|
+ System.out.println("Objects:");
|
|
|
+ List<String> objectSummaryList = new ArrayList<>();
|
|
|
+ for (OSSObjectSummary objectSummary : listing.getObjectSummaries()) {
|
|
|
+ objectSummaryList.add(objectSummary.getKey());
|
|
|
+ }
|
|
|
+
|
|
|
+ // 遍历所有commonPrefix。
|
|
|
+ System.out.println("CommonPrefixes:");
|
|
|
+ List<String> commonPrefixList = new ArrayList<>();
|
|
|
+ for (String commonPrefix : listing.getCommonPrefixes()) {
|
|
|
+ commonPrefixList.add(commonPrefix);
|
|
|
+ }
|
|
|
+ // 关闭OSSClient。
|
|
|
+ ossClient.shutdown();
|
|
|
+
|
|
|
+ JSONObject object = new JSONObject();
|
|
|
+ object.put("files", objectSummaryList);
|
|
|
+ object.put("folder", commonPrefixList);
|
|
|
+ return getSucReturnObject().setData(object).toString();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+}
|