OSS上傳圖片demo

 demo整理來源https://help.aliyun.com/document_detail/32011.htmlhtml

 

  1 /**
  2  * 示例說明
  3  * <p>
  4  * HelloOSS是OSS Java SDK的示例程序,您能夠修改endpoint、accessKeyId、accessKeySecret、bucketName後直接運行。
  5  * 運行方法請參考README。
  6  * <p>
  7  * 本示例中的並不包括OSS Java SDK的全部功能,詳細功能及使用方法,請參看「SDK手冊 > Java-SDK」,
  8  * 連接地址是:https://help.aliyun.com/document_detail/oss/sdk/java-sdk/preface.html?spm=5176.docoss/sdk/java-sdk/  9  * <p>
 10  * 調用OSS Java SDK的方法時,拋出異常表示有錯誤發生;沒有拋出異常表示成功執行。
 11  * 當錯誤發生時,OSS Java SDK的方法會拋出異常,異常中包括錯誤碼、錯誤信息,詳細請參看「SDK手冊 > Java-SDK > 異常處理」,
 12  * 連接地址是:https://help.aliyun.com/document_detail/oss/sdk/java-sdk/exception.html?spm=5176.docoss/api-reference/error-response 13  * <p>
 14  * OSS控制檯能夠直觀的看到您調用OSS Java SDK的結果,OSS控制檯地址是:https://oss.console.aliyun.com/index#/。
 15  * OSS控制檯使用方法請參看文檔中心的「控制檯用戶指南」, 指南的來連接地址是:https://help.aliyun.com/document_detail/oss/getting-started/get-started.html?spm=5176.docoss/user_guide 16  * <p>
 17  * OSS的文檔中心地址是:https://help.aliyun.com/document_detail/oss/user_guide/overview.html 18  * OSS Java SDK的文檔地址是:https://help.aliyun.com/document_detail/oss/sdk/java-sdk/install.html?spm=5176.docoss/sdk/java-sdk 19  */
 20 
 21 package com.aliyun.oss.demo;
 22 
 23 import java.io.*;
 24 import java.net.URL;
 25 import java.util.List;
 26 import java.util.Date;
 27 
 28 import com.aliyun.oss.ClientException;
 29 import com.aliyun.oss.OSSClient;
 30 import com.aliyun.oss.OSSException;
 31 import com.aliyun.oss.model.*;
 32 
 33 import org.apache.log4j.Logger;
 34 import org.apache.log4j.PropertyConfigurator;
 35 
 36 
 37 public class HelloOSS {
 38     static Logger logger = Logger.getLogger(HelloOSS.class);
 39 
 40     // endpoint是訪問OSS的域名。若是您已經在OSS的控制檯上 建立了Bucket,請在控制檯上查看域名。
 41     // 若是您尚未建立Bucket,endpoint選擇請參看文檔中心的「開發人員指南 > 基本概念 > 訪問域名」,
 42     // 連接地址是:https://help.aliyun.com/document_detail/oss/user_guide/oss_concept/endpoint.html?spm=5176.docoss/user_guide/endpoint_region
 43     // endpoint的格式形如「http://oss-cn-hangzhou.aliyuncs.com/」,注意http://後不帶bucket名稱,
 44     // 好比「http://bucket-name.oss-cn-hangzhou.aliyuncs.com」,是錯誤的endpoint,請去掉其中的「bucket-name」。
 45     private static String endpoint = "";
 46 
 47     // accessKeyId和accessKeySecret是OSS的訪問密鑰,您能夠在控制檯上建立和查看,
 48     // 建立和查看訪問密鑰的連接地址是:https://ak-console.aliyun.com/#/。
 49     // 注意:accessKeyId和accessKeySecret先後都沒有空格,從控制檯複製時請檢查並去除多餘的空格。
 50     private static String accessKeyId = "";
 51     private static String accessKeySecret = "";
 52 
 53     // Bucket用來管理所存儲Object的存儲空間,詳細描述請參看「開發人員指南 > 基本概念 > OSS基本概念介紹」。
 54     // Bucket命名規範以下:只能包括小寫字母,數字和短橫線(-),必須以小寫字母或者數字開頭,長度必須在3-63字節之間。
 55     private static String bucketName = "";
 56 
 57 
 58     public static void main(String[] args) {
 59 
 60         // 日誌配置,OSS Java SDK使用log4j記錄錯誤信息。示例程序會在工程目錄下生成「oss-demo.log」日誌文件,默認日誌級別是INFO。
 61         // 日誌的配置文件是「conf/log4j.properties」,若是您不須要日誌,能夠沒有日誌配置文件和下面的日誌配置。
 62         PropertyConfigurator.configure("conf/log4j.properties");
 63 
 64         logger.info("Started");
 65 
 66         // 生成OSSClient,您能夠指定一些參數,詳見「SDK手冊 > Java-SDK > 初始化」,
 67         // 連接地址是:https://help.aliyun.com/document_detail/oss/sdk/java-sdk/init.html?spm=5176.docoss/sdk/java-sdk/get-start
 68         OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
 69 
 70         try {
 71 
 72             // 判斷Bucket是否存在。詳細請參看「SDK手冊 > Java-SDK > 管理Bucket」。
 73             // 連接地址是:https://help.aliyun.com/document_detail/oss/sdk/java-sdk/manage_bucket.html?spm=5176.docoss/sdk/java-sdk/init
 74             if (ossClient.doesBucketExist(bucketName)) {
 75                 System.out.println("您已經建立Bucket:" + bucketName + "。");
 76             } else {
 77                 System.out.println("您的Bucket不存在,建立Bucket:" + bucketName + "。");
 78                 // 建立Bucket。詳細請參看「SDK手冊 > Java-SDK > 管理Bucket」。
 79                 // 連接地址是:https://help.aliyun.com/document_detail/oss/sdk/java-sdk/manage_bucket.html?spm=5176.docoss/sdk/java-sdk/init
 80                 ossClient.createBucket(bucketName);
 81             }
 82 
 83             // 查看Bucket信息。詳細請參看「SDK手冊 > Java-SDK > 管理Bucket」。
 84             // 連接地址是:https://help.aliyun.com/document_detail/oss/sdk/java-sdk/manage_bucket.html?spm=5176.docoss/sdk/java-sdk/init
 85             BucketInfo info = ossClient.getBucketInfo(bucketName);
 86             System.out.println("Bucket " + bucketName + "的信息以下:");
 87             System.out.println("\t數據中心:" + info.getBucket().getLocation());
 88             System.out.println("\t建立時間:" + info.getBucket().getCreationDate());
 89             System.out.println("\t用戶標誌:" + info.getBucket().getOwner());
 90 
 91 
 92             //上傳本地的新聞圖片流文件
 93             String newFileKey = "newFileKeytest2.jpg";
 94             InputStream inputStream = new FileInputStream("newFileKey.jpg");
 95             ossClient.putObject(bucketName, "xxxx/"+newFileKey, inputStream);
 96 
 97             // 設置URL過時時間爲1小時。
 98             Date expiration = new Date(System.currentTimeMillis() + 3600 * 1000);
 99             // 生成以GET方法訪問的簽名URL,訪客能夠直接經過瀏覽器訪問相關內容。
100             URL url = ossClient.generatePresignedUrl(bucketName, "xxxx/"+newFileKey, expiration);
101             System.out.println(url);
102 
103 
104             // 查看Bucket中的Object。詳細請參看「SDK手冊 > Java-SDK > 管理文件」。
105             // 連接地址是:https://help.aliyun.com/document_detail/oss/sdk/java-sdk/manage_object.html?spm=5176.docoss/sdk/java-sdk/manage_bucket
106             // 指定前綴。
107             final String keyPrefix = "xxxx";
108             // 列舉包含指定前綴的文件。默認列舉100個文件。
109             ObjectListing objectListing = ossClient.listObjects(new ListObjectsRequest(bucketName).withPrefix(keyPrefix));
110             List<OSSObjectSummary> sums = objectListing.getObjectSummaries();
111             System.out.println("您有如下Object:");
112             for (OSSObjectSummary s : sums) {
113                 System.out.println("\t" + s.getKey());
114             }
115 
116 
117             // 刪除Object。詳細請參看「SDK手冊 > Java-SDK > 管理文件」。
118             // 連接地址是:https://help.aliyun.com/document_detail/oss/sdk/java-sdk/manage_object.html?spm=5176.docoss/sdk/java-sdk/manage_bucket
119             //ossClient.deleteObject(bucketName, newFileKey);
120             //System.out.println("刪除Object:" + newFileKey + "成功。");
121 
122 
123         } catch (OSSException oe) {
124             oe.printStackTrace();
125         } catch (ClientException ce) {
126             ce.printStackTrace();
127         } catch (Exception e) {
128             e.printStackTrace();
129         } finally {
130             ossClient.shutdown();
131         }
132 
133         logger.info("Completed");
134     }
135 
136 
137 }

 添加一點新東西  隨機字符串java

  1 package com.aliyun.oss.demo;
  2 
  3 import java.io.*;
  4 import java.net.URL;
  5 import java.util.List;
  6 import java.util.Date;
  7 import java.util.Random;
  8 
  9 import com.aliyun.oss.ClientException;
 10 import com.aliyun.oss.OSSClient;
 11 import com.aliyun.oss.OSSException;
 12 import com.aliyun.oss.model.*;
 13 
 14 import org.apache.log4j.Logger;
 15 import org.apache.log4j.PropertyConfigurator;
 16 
 17 
 18 public class HelloOSS {
 19     static Logger logger = Logger.getLogger(HelloOSS.class);
 20 
 21     // endpoint是訪問OSS的域名。若是您已經在OSS的控制檯上 建立了Bucket,請在控制檯上查看域名。
 22     // 若是您尚未建立Bucket,endpoint選擇請參看文檔中心的「開發人員指南 > 基本概念 > 訪問域名」,
 23     // 連接地址是:https://help.aliyun.com/document_detail/oss/user_guide/oss_concept/endpoint.html?spm=5176.docoss/user_guide/endpoint_region
 24     // endpoint的格式形如「http://oss-cn-hangzhou.aliyuncs.com/」,注意http://後不帶bucket名稱,
 25     // 好比「http://bucket-name.oss-cn-hangzhou.aliyuncs.com」,是錯誤的endpoint,請去掉其中的「bucket-name」。
 26     private static String endpoint = "";
 27 
 28     // accessKeyId和accessKeySecret是OSS的訪問密鑰,您能夠在控制檯上建立和查看,
 29     // 建立和查看訪問密鑰的連接地址是:https://ak-console.aliyun.com/#/。
 30     // 注意:accessKeyId和accessKeySecret先後都沒有空格,從控制檯複製時請檢查並去除多餘的空格。
 31     private static String accessKeyId = "";
 32     private static String accessKeySecret = "";
 33 
 34     // Bucket用來管理所存儲Object的存儲空間,詳細描述請參看「開發人員指南 > 基本概念 > OSS基本概念介紹」。
 35     // Bucket命名規範以下:只能包括小寫字母,數字和短橫線(-),必須以小寫字母或者數字開頭,長度必須在3-63字節之間。
 36     private static String bucketName = "";
 37 
 38 
 39     public static void main(String[] args) {
 40 
 41         // 日誌配置,OSS Java SDK使用log4j記錄錯誤信息。示例程序會在工程目錄下生成「oss-demo.log」日誌文件,默認日誌級別是INFO。
 42         // 日誌的配置文件是「conf/log4j.properties」,若是您不須要日誌,能夠沒有日誌配置文件和下面的日誌配置。
 43         PropertyConfigurator.configure("conf/log4j.properties");
 44 
 45         logger.info("Started");
 46 
 47         // 生成OSSClient,您能夠指定一些參數,詳見「SDK手冊 > Java-SDK > 初始化」,
 48         // 連接地址是:https://help.aliyun.com/document_detail/oss/sdk/java-sdk/init.html?spm=5176.docoss/sdk/java-sdk/get-start
 49         OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
 50 
 51         try {
 52 
 53             /*  校驗存儲空間  */
 54             // 判斷Bucket是否存在。詳細請參看「SDK手冊 > Java-SDK > 管理Bucket」。
 55             // 連接地址是:https://help.aliyun.com/document_detail/oss/sdk/java-sdk/manage_bucket.html?spm=5176.docoss/sdk/java-sdk/init
 56             if (ossClient.doesBucketExist(bucketName)) {
 57                 System.out.println("您已經建立Bucket:" + bucketName + "。");
 58             } else {
 59                 System.out.println("您的Bucket不存在,建立Bucket:" + bucketName + "。");
 60                 // 建立Bucket。詳細請參看「SDK手冊 > Java-SDK > 管理Bucket」。
 61                 // 連接地址是:https://help.aliyun.com/document_detail/oss/sdk/java-sdk/manage_bucket.html?spm=5176.docoss/sdk/java-sdk/init
 62                 ossClient.createBucket(bucketName);
 63             }
 64 
 65             // 查看Bucket信息。詳細請參看「SDK手冊 > Java-SDK > 管理Bucket」。
 66             // 連接地址是:https://help.aliyun.com/document_detail/oss/sdk/java-sdk/manage_bucket.html?spm=5176.docoss/sdk/java-sdk/init
 67             BucketInfo info = ossClient.getBucketInfo(bucketName);
 68             System.out.println("Bucket " + bucketName + "的信息以下:");
 69             System.out.println("\t數據中心:" + info.getBucket().getLocation());
 70             System.out.println("\t建立時間:" + info.getBucket().getCreationDate());
 71             System.out.println("\t用戶標誌:" + info.getBucket().getOwner());
 72 
 73 
 74 
 75            /*上傳本地圖片*/
 76            //圖片全路徑
 77            String filePath = "G://oss//snow.jpg";
 78            //上傳文件全名稱
 79            String newFileKey = getStringRandom(32)+getContentType(filePath);
 80            InputStream inputStream = new FileInputStream(filePath);
 81            //上傳流文件
 82            ossClient.putObject(bucketName, "xxxx/"+newFileKey, inputStream);
 83 
 84            // 設置URL過時時間爲1小時。
 85            Date expiration = new Date(System.currentTimeMillis() + 3600 * 1000);
 86            // 生成以GET方法訪問的簽名URL,訪客能夠直接經過瀏覽器訪問相關內容。
 87            URL url = ossClient.generatePresignedUrl(bucketName, "xxxx/"+newFileKey, expiration);
 88            System.out.println(url);
 89 
 90             /*遍歷存儲空間*/
 91             // 查看Bucket中的Object。詳細請參看「SDK手冊 > Java-SDK > 管理文件」。
 92             // 連接地址是:https://help.aliyun.com/document_detail/oss/sdk/java-sdk/manage_object.html?spm=5176.docoss/sdk/java-sdk/manage_bucket
 93             // 指定前綴。
 94             final String keyPrefix = "xxxx";
 95             // 列舉包含指定前綴的文件。默認列舉100個文件。
 96             ObjectListing objectListing = ossClient.listObjects(new ListObjectsRequest(bucketName).withPrefix(keyPrefix));
 97             List<OSSObjectSummary> sums = objectListing.getObjectSummaries();
 98             System.out.println("您有如下Object:");
 99             for (OSSObjectSummary s : sums) {
100                 System.out.println("\t" + s.getKey());
101             }
102 
103             /*下載文件到本地*/
104             // 下載OSS文件到本地文件。若是指定的本地文件存在會覆蓋,不存在則新建。
105            ossClient.getObject(new GetObjectRequest(bucketName, "xxxx/"+newFileKey), new File("G://oss//"+newFileKey));
106 
107             /*刪除空間文件*/
108             // 刪除Object。詳細請參看「SDK手冊 > Java-SDK > 管理文件」。
109             // 連接地址是:https://help.aliyun.com/document_detail/oss/sdk/java-sdk/manage_object.html?spm=5176.docoss/sdk/java-sdk/manage_bucket
110             //ossClient.deleteObject(bucketName, newFileKey);
111             //System.out.println("刪除Object:" + newFileKey + "成功。");
112 
113 
114         } catch (OSSException oe) {
115             oe.printStackTrace();
116         } catch (ClientException ce) {
117             ce.printStackTrace();
118         } catch (Exception e) {
119             e.printStackTrace();
120         } finally {
121             ossClient.shutdown();
122         }
123 
124         logger.info("Completed");
125     }
126 
127     /**
128      *生成隨機數字和字母
129      * @param length 長度
130      * @return  隨機字符串
131      */
132     public static String getStringRandom(int length) {
133         String val = "";
134         Random random = new Random();
135         //參數length,表示生成幾位隨機數
136         for(int i = 0; i < length; i++) {
137             String charOrNum = random.nextInt(2) % 2 == 0 ? "char" : "num";
138             //輸出字母仍是數字
139             if( "char".equalsIgnoreCase(charOrNum) ) {
140                 //輸出是大寫字母仍是小寫字母
141                 int temp = random.nextInt(2) % 2 == 0 ? 65 : 97;
142                 val += (char)(random.nextInt(26) + temp);
143             } else if( "num".equalsIgnoreCase(charOrNum) ) {
144                 val += String.valueOf(random.nextInt(10));
145             }
146         }
147         return val;
148     }
149 
150     /**
151      * 經過文件名判斷並獲取OSS服務文件上傳時文件的contentType
152      * @param fileName 文件名
153      * @return 文件的contentType
154      */
155     public static  String getContentType(String fileName){
156         //文件的後綴名
157         String fileExtension = fileName.substring(fileName.lastIndexOf("."));
158         if(".bmp".equalsIgnoreCase(fileExtension)) {
159             return ".bmp";
160         }
161         if(".gif".equalsIgnoreCase(fileExtension)) {
162             return ".gif";
163         }
164         if(".jpeg".equalsIgnoreCase(fileExtension)) {
165             return ".jpeg";
166         }
167         if(".jpg".equalsIgnoreCase(fileExtension)) {
168             return ".jpg";
169         }
170         if(".png".equalsIgnoreCase(fileExtension) ) {
171             return ".png";
172         }
173         //默認返回類型
174         return ".jpeg";
175     }
176 
177 }

再添加一點小東西  apache

package com.aliyun.oss.demo;

import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.*;
import java.net.URL;
import java.util.List;
import java.util.Date;
import java.util.Random;

import com.aliyun.oss.ClientException;
import com.aliyun.oss.OSSClient;
import com.aliyun.oss.OSSException;
import com.aliyun.oss.model.*;

import org.apache.log4j.Logger;
import org.apache.log4j.PropertyConfigurator;

import javax.swing.*;


public class HelloOSS extends JFrame implements ActionListener {
    static Logger logger = Logger.getLogger(HelloOSS.class);

    // endpoint是訪問OSS的域名。若是您已經在OSS的控制檯上 建立了Bucket,請在控制檯上查看域名。
    // 若是您尚未建立Bucket,endpoint選擇請參看文檔中心的「開發人員指南 > 基本概念 > 訪問域名」,
    // 連接地址是:https://help.aliyun.com/document_detail/oss/user_guide/oss_concept/endpoint.html?spm=5176.docoss/user_guide/endpoint_region
    // endpoint的格式形如「http://oss-cn-hangzhou.aliyuncs.com/」,注意http://後不帶bucket名稱,
    // 好比「http://bucket-name.oss-cn-hangzhou.aliyuncs.com」,是錯誤的endpoint,請去掉其中的「bucket-name」。
    private static String endpoint = "";

    // accessKeyId和accessKeySecret是OSS的訪問密鑰,您能夠在控制檯上建立和查看,
    // 建立和查看訪問密鑰的連接地址是:https://ak-console.aliyun.com/#/。
    // 注意:accessKeyId和accessKeySecret先後都沒有空格,從控制檯複製時請檢查並去除多餘的空格。
    private static String accessKeyId = "";
    private static String accessKeySecret = "";

    // Bucket用來管理所存儲Object的存儲空間,詳細描述請參看「開發人員指南 > 基本概念 > OSS基本概念介紹」。
    // Bucket命名規範以下:只能包括小寫字母,數字和短橫線(-),必須以小寫字母或者數字開頭,長度必須在3-63字節之間。
    private static String bucketName = "";

    JButton jb = new JButton("選擇文件");

    public static void main(String[] args) {
        // TODO 自動生成的方法存根
        new HelloOSS();
    }

    public HelloOSS() {
        jb.setActionCommand("open");
        //設置按鈕顏色
        jb.setBackground(Color.LIGHT_GRAY);
        //創建容器使用邊界佈局
        this.getContentPane().add(jb, BorderLayout.SOUTH);

        jb.addActionListener(this);
        this.setTitle("標題");
        this.setSize(333, 288);
        this.setLocation(200, 200);
        //顯示窗口true
        this.setVisible(true);
        this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        if (e.getActionCommand().equals("open")) {
            JFileChooser jf = new JFileChooser();
            //顯示打開的文件對話框
            jf.showOpenDialog(this);
            //使用文件類獲取選擇器選擇的文件
            File f = jf.getSelectedFile();
            //返回路徑名
            String s = f.getAbsolutePath();
            //JOptionPane彈出對話框類,顯示絕對路徑名
            //JOptionPane.showMessageDialog(this, s, "標題",JOptionPane.WARNING_MESSAGE);
            uploadPicture(s);

        }
    }

    public void uploadPicture(String path) {
        // 日誌配置,OSS Java SDK使用log4j記錄錯誤信息。示例程序會在工程目錄下生成「oss-demo.log」日誌文件,默認日誌級別是INFO。
        // 日誌的配置文件是「conf/log4j.properties」,若是您不須要日誌,能夠沒有日誌配置文件和下面的日誌配置。
        PropertyConfigurator.configure("conf/log4j.properties");

        logger.info("Started");

        // 生成OSSClient,您能夠指定一些參數,詳見「SDK手冊 > Java-SDK > 初始化」,
        // 連接地址是:https://help.aliyun.com/document_detail/oss/sdk/java-sdk/init.html?spm=5176.docoss/sdk/java-sdk/get-start
        OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);

        try {

            /*  校驗存儲空間  */
            // 判斷Bucket是否存在。詳細請參看「SDK手冊 > Java-SDK > 管理Bucket」。
            // 連接地址是:https://help.aliyun.com/document_detail/oss/sdk/java-sdk/manage_bucket.html?spm=5176.docoss/sdk/java-sdk/init
            if (ossClient.doesBucketExist(bucketName)) {
                System.out.println("您已經建立Bucket:" + bucketName + "。");
            } else {
                System.out.println("您的Bucket不存在,建立Bucket:" + bucketName + "。");
                // 建立Bucket。詳細請參看「SDK手冊 > Java-SDK > 管理Bucket」。
                // 連接地址是:https://help.aliyun.com/document_detail/oss/sdk/java-sdk/manage_bucket.html?spm=5176.docoss/sdk/java-sdk/init
                ossClient.createBucket(bucketName);
            }

            // 查看Bucket信息。詳細請參看「SDK手冊 > Java-SDK > 管理Bucket」。
            // 連接地址是:https://help.aliyun.com/document_detail/oss/sdk/java-sdk/manage_bucket.html?spm=5176.docoss/sdk/java-sdk/init
            BucketInfo info = ossClient.getBucketInfo(bucketName);
            System.out.println("Bucket " + bucketName + "的信息以下:");
            System.out.println("\t數據中心:" + info.getBucket().getLocation());
            System.out.println("\t建立時間:" + info.getBucket().getCreationDate());
            System.out.println("\t用戶標誌:" + info.getBucket().getOwner());



            /*上傳本地圖片*/
            //圖片全路徑
            String filePath = path;
            //上傳文件全名稱
            String newFileKey = getStringRandom(32) + getContentType(filePath);
            InputStream inputStream = new FileInputStream(filePath);
            //上傳流文件
            ossClient.putObject(bucketName, "xxxx/" + newFileKey, inputStream);

            // 設置URL過時時間爲1小時。
            Date expiration = new Date(System.currentTimeMillis() + 3600 * 1000);
            // 生成以GET方法訪問的簽名URL,訪客能夠直接經過瀏覽器訪問相關內容。
            URL url = ossClient.generatePresignedUrl(bucketName, "xxxx/" + newFileKey, expiration);
            System.out.println(url);

            /*遍歷存儲空間*/
            // 查看Bucket中的Object。詳細請參看「SDK手冊 > Java-SDK > 管理文件」。
            // 連接地址是:https://help.aliyun.com/document_detail/oss/sdk/java-sdk/manage_object.html?spm=5176.docoss/sdk/java-sdk/manage_bucket
            // 指定前綴。
            final String keyPrefix = "xxxx";
            // 列舉包含指定前綴的文件。默認列舉100個文件。
            ObjectListing objectListing = ossClient.listObjects(new ListObjectsRequest(bucketName).withPrefix(keyPrefix));
            List<OSSObjectSummary> sums = objectListing.getObjectSummaries();
            System.out.println("您有如下Object:");
            for (OSSObjectSummary s : sums) {
                System.out.println("\t" + s.getKey());
            }

            /*下載文件到本地*/
            //下載OSS文件到本地文件。若是指定的本地文件存在會覆蓋,不存在則新建。
//            ossClient.getObject(new GetObjectRequest(bucketName, "xxxx/"+newFileKey), new File("G://oss//"+newFileKey));

            /*刪除空間文件*/
            // 刪除Object。詳細請參看「SDK手冊 > Java-SDK > 管理文件」。
            // 連接地址是:https://help.aliyun.com/document_detail/oss/sdk/java-sdk/manage_object.html?spm=5176.docoss/sdk/java-sdk/manage_bucket
            //ossClient.deleteObject(bucketName, newFileKey);
            //System.out.println("刪除Object:" + newFileKey + "成功。");


        } catch (OSSException oe) {
            oe.printStackTrace();
        } catch (ClientException ce) {
            ce.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        } finally {
            ossClient.shutdown();
        }

        logger.info("Completed");
    }

    /**
     * 生成隨機數字和字母,
     *
     * @param
     * @return
     * @author Guoyh
     * @date 2018/10/10 12:25
     */
    public static String getStringRandom(int length) {
        String val = "";
        Random random = new Random();
        //參數length,表示生成幾位隨機數
        for (int i = 0; i < length; i++) {
            String charOrNum = random.nextInt(2) % 2 == 0 ? "char" : "num";
            //輸出字母仍是數字
            if ("char".equalsIgnoreCase(charOrNum)) {
                //輸出是大寫字母仍是小寫字母
                int temp = random.nextInt(2) % 2 == 0 ? 65 : 97;
                val += (char) (random.nextInt(26) + temp);
            } else if ("num".equalsIgnoreCase(charOrNum)) {
                val += String.valueOf(random.nextInt(10));
            }
        }
        return val;
    }

    /**
     * 經過文件名判斷並獲取OSS服務文件上傳時文件的contentType
     *
     * @param fileName 文件名
     * @return 文件的contentType
     */
    public static String getContentType(String fileName) {
        //文件的後綴名
        String fileExtension = fileName.substring(fileName.lastIndexOf("."));
        if (".bmp".equalsIgnoreCase(fileExtension)) {
            return ".bmp";
        }
        if (".gif".equalsIgnoreCase(fileExtension)) {
            return ".gif";
        }
        if (".jpeg".equalsIgnoreCase(fileExtension)) {
            return ".jpeg";
        }
        if (".jpg".equalsIgnoreCase(fileExtension)) {
            return ".jpg";
        }
        if (".png".equalsIgnoreCase(fileExtension)) {
            return ".png";
        }
        //默認返回類型
        return ".jpeg";
    }

}
相關文章
相關標籤/搜索