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

}

 

posted @ 2018-10-10 15:11  Angelye  阅读(6607)  评论(0编辑  收藏  举报