阿里云OSS 使用方法

依赖        

<dependency>
            <groupId>com.aliyun.oss</groupId>
            <artifactId>aliyun-sdk-oss</artifactId>
            <version>2.8.2</version>
        </dependency>

工具类

import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.util.Date;

import com.aliyun.oss.ClientException;
import com.aliyun.oss.OSSClient;
import com.aliyun.oss.OSSException;
import com.aliyun.oss.model.ObjectMetadata;
import com.aliyun.oss.model.PutObjectResult;

/**
 * 断点续传上传用法示例
 *
 */
public class UploadSample {
    
    private static String endpoint = "";
    private static String accessKeyId = "";
    private static String accessKeySecret = "";
    private static String bucketName = "";
    private static String key = "要存的路径/";
 

    public static String upload(InputStream instream, String fileName) throws IOException {        

        OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
        
        try {
            ObjectMetadata objectMetadata = new ObjectMetadata();
            objectMetadata.setContentLength(instream.available());
            objectMetadata.setCacheControl("no-cache");
            objectMetadata.setHeader("Pragma", "no-cache");
            objectMetadata.setContentType(getcontentType(fileName.substring(fileName.lastIndexOf("."))));
            objectMetadata.setContentDisposition("inline;filename=" + fileName);
            //上传文件
            PutObjectResult putResult = ossClient.putObject(bucketName, key + fileName, instream, objectMetadata);
            Date expiration = new Date(new Date().getTime() + 3600l * 1000 * 24 * 365 * 10);
            // 生成URL
            URL url = ossClient.generatePresignedUrl(bucketName, key + fileName, expiration);
            /*UploadFileRequest uploadFileRequest = new UploadFileRequest(bucketName, key + "");
            // 待上传的本地文件
            uploadFileRequest.setUploadFile(uploadFile);
            // 设置并发下载数,默认1
            uploadFileRequest.setTaskNum(5);
            // 设置分片大小,默认100KB
            uploadFileRequest.setPartSize(1024 * 1024 * 1);
            // 开启断点续传,默认关闭
            uploadFileRequest.setEnableCheckpoint(true);
            
            UploadFileResult uploadResult = ossClient.uploadFile(uploadFileRequest);
            
            CompleteMultipartUploadResult multipartUploadResult = 
                    uploadResult.getMultipartUploadResult();
            System.out.println(multipartUploadResult.getETag());*/
            return url.toString();
            
        } 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.getErrorCode());
            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());
        } catch (Throwable e) {
            e.printStackTrace();
        } finally {
            ossClient.shutdown();
        }
        return null;
    }
    public static String getcontentType(String FilenameExtension) {
        if (FilenameExtension.equalsIgnoreCase(".bmp")) {
          return "image/bmp";
        }
        if (FilenameExtension.equalsIgnoreCase(".gif")) {
          return "image/gif";
        }
        if (FilenameExtension.equalsIgnoreCase(".jpeg") ||
            FilenameExtension.equalsIgnoreCase(".jpg") ||
            FilenameExtension.equalsIgnoreCase(".png")) {
          return "image/jpeg";
        }
        if (FilenameExtension.equalsIgnoreCase(".html")) {
          return "text/html";
        }
        if (FilenameExtension.equalsIgnoreCase(".txt")) {
          return "text/plain";
        }
        if (FilenameExtension.equalsIgnoreCase(".vsd")) {
          return "application/vnd.visio";
        }
        if (FilenameExtension.equalsIgnoreCase(".pptx") ||
            FilenameExtension.equalsIgnoreCase(".ppt")) {
          return "application/vnd.ms-powerpoint";
        }
        if (FilenameExtension.equalsIgnoreCase(".docx") ||
            FilenameExtension.equalsIgnoreCase(".doc")) {
          return "application/msword";
        }
        if (FilenameExtension.equalsIgnoreCase(".xml")) {
          return "text/xml";
        }
        return "image/jpeg";
      }
}
 

上传

               String type = fileMsg.getOriginalFilename().substring(
              fileMsg.getOriginalFilename().indexOf("."));// 取文件格式后缀名
              String filename = System.currentTimeMillis() + type;// 取当前时间戳作为文件名

             //返回存储路径
              String url = UploadSample.upload(fileMsg.getInputStream(), filename);

猜你喜欢

转载自blog.csdn.net/smile_Accompany/article/details/81358552