Bläddra i källkod

上传到oss-hangzhou-mooctest-share

xujiawei 4 år sedan
förälder
incheckning
f746fb9e9e
2 ändrade filer med 65 tillägg och 16 borttagningar
  1. 15 2
      src/main/java/edu/nju/service/DataService.java
  2. 50 14
      src/main/java/edu/nju/util/OssAliyun.java

+ 15 - 2
src/main/java/edu/nju/service/DataService.java

@@ -1,7 +1,9 @@
 package edu.nju.service;
 
+import com.aliyun.oss.OSS;
 import edu.nju.dao.*;
 import edu.nju.entities.*;
+import edu.nju.util.OssAliyun;
 import edu.nju.util.TransUtil;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -46,6 +48,7 @@ public class DataService {
     BugHistoryDao bugHistoryDao;
 
     private static final String cpSerialNum = "cp_dev";
+    private static final String bucketName="mooctest-share";
 
 
     /**
@@ -168,11 +171,12 @@ public class DataService {
                 "worker_id",
                 "case_app_name","case_paper_type","case_test_type", "case_description", "case_require_doc",
                 "case_take_id","originalCaseId","cpSerialNum"};
-        exportCsv(titles, bugDetailList,caseId);
+        File file=exportCsv(titles, bugDetailList,caseId);
+        uploadToOss(file);
     }
 
 
-    public <T> void exportCsv(String[] titles, List<T> list,String caseId) {
+    public <T> File exportCsv(String[] titles, List<T> list,String caseId) {
         try {
             File file = new File("data/"+caseId+".csv");
             //构建输出流,同时指定编码
@@ -205,10 +209,19 @@ public class DataService {
             }
             ow.flush();
             ow.close();
+            return file;
         } catch (IOException | IllegalAccessException e) {
             e.printStackTrace();
         }
+        return null;
     }
+
+    private void uploadToOss(File file){
+        OSS ossClient= OssAliyun.initHangZhouOss();
+        String objectName="crowd-dataset/"+file.getName();
+        OssAliyun.uploadFile(ossClient,bucketName,objectName,file);
+    }
+
 }
 
 

+ 50 - 14
src/main/java/edu/nju/util/OssAliyun.java

@@ -22,25 +22,16 @@ package edu.nju.util;
 
 import java.io.BufferedReader;
 import java.io.File;
-import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.InputStreamReader;
-import java.io.OutputStreamWriter;
-import java.io.Writer;
 
 import com.aliyun.oss.ClientException;
 import com.aliyun.oss.OSS;
 import com.aliyun.oss.OSSClientBuilder;
 import com.aliyun.oss.OSSException;
-import com.aliyun.oss.model.Bucket;
 import com.aliyun.oss.model.CannedAccessControlList;
 import com.aliyun.oss.model.CreateBucketRequest;
-import com.aliyun.oss.model.ListBucketsRequest;
-import com.aliyun.oss.model.OSSObject;
-import com.aliyun.oss.model.OSSObjectSummary;
-import com.aliyun.oss.model.ObjectAcl;
-import com.aliyun.oss.model.ObjectListing;
 import com.aliyun.oss.model.PutObjectRequest;
 
 /**
@@ -49,16 +40,59 @@ import com.aliyun.oss.model.PutObjectRequest;
  */
 public class OssAliyun {
 
-    private static String endpoint = "http://oss-cn-shanghai.aliyuncs.com";
+    private static String shangHaiEndpoint = "http://oss-cn-shanghai.aliyuncs.com";
+    private static String hangZhouEndpoint = "http://oss-cn-hangzhou.aliyuncs.com";
     private static String accessKeyId = "LTAI4FdrT3HsfdR5edBVN7ws";
     private static String accessKeySecret = "yroxrpm46DzTyzHrLBZzS3MRNIicP6";
     private static String bucketName = "mooctest-site";
 
+    public static OSS initHangZhouOss(){
+        return new OSSClientBuilder().build(hangZhouEndpoint, accessKeyId, accessKeySecret);
+    }
+
+    public static void uploadFile(OSS ossClient,String bucketName,String objectName,File file){
+        try {
+            /*
+             * Determine whether the bucket exists
+             */
+            if (!ossClient.doesBucketExist(bucketName)) {
+                /*
+                 * Create a new OSS bucket
+                 */
+                ossClient.createBucket(bucketName);
+                CreateBucketRequest createBucketRequest= new CreateBucketRequest(bucketName);
+                createBucketRequest.setCannedACL(CannedAccessControlList.PublicRead);
+                ossClient.createBucket(createBucketRequest);
+            }
+
+            /*
+             * Upload an object to your bucket
+             */
+            System.out.println("Uploading a new object to OSS from a file\n");
+            ossClient.putObject(new PutObjectRequest(bucketName, objectName, file));
+        } catch (OSSException oe) {
+            System.out.println("Caught an OSSException, which means your request made it to OSS, "
+                    + "but was rejected with an error response for some reason.");
+            System.out.println("Error Message: " + oe.getErrorMessage());
+            System.out.println("Error Code:       " + oe.getErrorCode());
+            System.out.println("Request ID:      " + oe.getRequestId());
+            System.out.println("Host ID:           " + oe.getHostId());
+        } catch (ClientException ce) {
+            System.out.println("Caught an ClientException, which means the client encountered "
+                    + "a serious internal problem while trying to communicate with OSS, "
+                    + "such as not being able to access the network.");
+            System.out.println("Error Message: " + ce.getMessage());
+        } finally {
+            ossClient.shutdown();
+        }
+
+    }
+
     public static void uploadFile(String objectName,File file) throws IOException {
         /*
          * Constructs a client instance with your account for accessing OSS
          */
-        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
+        OSS ossClient = new OSSClientBuilder().build(shangHaiEndpoint, accessKeyId, accessKeySecret);
         try {
             /*
              * Determine whether the bucket exists
@@ -137,7 +171,7 @@ public class OssAliyun {
         /*
          * Constructs a client instance with your account for accessing OSS
          */
-        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
+        OSS ossClient = new OSSClientBuilder().build(shangHaiEndpoint, accessKeyId, accessKeySecret);
         try {
             /*
              * Determine whether the bucket exists
@@ -181,7 +215,9 @@ public class OssAliyun {
         BufferedReader reader = new BufferedReader(new InputStreamReader(input));
         while (true) {
             String line = reader.readLine();
-            if (line == null) break;
+            if (line == null) {
+                break;
+            }
 
             System.out.println("    " + line);
         }
@@ -191,7 +227,7 @@ public class OssAliyun {
     }
 
     public static void main(String[]arg){
-        OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);
+        OSS ossClient = new OSSClientBuilder().build(shangHaiEndpoint, accessKeyId, accessKeySecret);
         String objectName="paperjson/1492-2612.json";
         try {
             /*