OSS上傳圖片demo


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

 

  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 }

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

  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 }

再添加一點小東西  

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";
    }

}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM