上传文件(阿里)OSSFileUpload

使用 OSS 管理控制台

阿里oss网站说明

使用控制台步骤(摘自阿里)

  1. 进入 OSS 管理控制台界面。
  2. 在左侧存储空间列表中,单击您要向其中上传文件的存储空间。
  3. 单击文件管理页签
  4. 单击上传文件,打开上传文件对话框。
  5. 在上传到框中,设置文件上传到 OSS 中的存储路径。
  6. 当前目录:将文件上传到当前目录

OSSFileUpload 工具类

第一步 pom


		
			com.aliyun.oss
			aliyun-sdk-oss
			2.0.6
			compile
		
		
			com.aliyun
			aliyun-java-sdk-dm
			3.1.0
		

第二步 OSSFileUpload

public class OSSFileUpload {
	  private static final String OSS_KEY = "********"; // 阿里云OSS_KEY
    private static final String OSS_SECRET = "*******************"; // 阿里云OSS_SECRET
    private static final String OSS_ENDPOINT = "http://oss-cn-hangzhou.aliyuncs.com"; //阿里云OSS_ENDPOINT  杭州Url
    private static final String OSS_BUCKETNAME = "*********"; // oss存储空间名称
    private static final String COMMON_OSS_BUCKETNAME = "*********";// (公共平台)



    /**
     * 上传文件
     * @param key
     * @param filePath
     * @throws FileNotFoundException
     */
    public static void upload(String key, MultipartFile file, Boolean isCommon) throws Exception {
        // 初始化OSSClient
        OSSClient client = new OSSClient(OSS_ENDPOINT, OSS_KEY, OSS_SECRET);
        // 获取指定文件的输入流
        InputStream content = file.getInputStream();
        // 创建上传Object的Metadata
        ObjectMetadata meta = new ObjectMetadata();
        // 必须设置ContentLength
        meta.setContentLength(file.getSize());
        // 上传Object
        String bucketName = OSS_BUCKETNAME;
        if (isCommon) {
        	bucketName = COMMON_OSS_BUCKETNAME;
        }
        client.putObject(bucketName, key, content, meta);
    }

    /**
     * 上传文件
     * @param key
     * @param filePath
     * @throws FileNotFoundException
     */
    public static String upload(String key, File file, Boolean isCommon) throws Exception {
        // 初始化OSSClient
        OSSClient client = new OSSClient(OSS_ENDPOINT, OSS_KEY, OSS_SECRET);
        // 获取指定文件的输入流
        InputStream content = new FileInputStream(file);
        // 创建上传Object的Metadata
        ObjectMetadata meta = new ObjectMetadata();
        // 必须设置ContentLength
        meta.setContentLength(file.length());
        // 上传Object
        String bucketName = OSS_BUCKETNAME;
        if (isCommon) {
        	bucketName = COMMON_OSS_BUCKETNAME;
        }
        // 上传文件。由本地文件路径加文件名包括后缀组成,例如/users/local/myfile.txt。
        PutObjectResult putObjectResult = client.putObject(bucketName, key, content, meta);
        content.close();
        return  "http://"+bucketName+".oss-cn-hangzhou.aliyuncs.com/"+key;
    }


    /**
     * 删除指定文件名的文件
     * @param key 文件名
     */
    public static void deleteObject(String key, Boolean isCommon) {
        // 初始化OSSClient
        OSSClient client = new OSSClient(OSS_ENDPOINT, OSS_KEY, OSS_SECRET);
        // 删除Object
        String bucketName = OSS_BUCKETNAME;
        if (isCommon) {
        	bucketName = COMMON_OSS_BUCKETNAME;
        }
        client.deleteObject(bucketName, key);
    }
    
    /**
     * 获取指定文件名的文件
     * @param key 文件名
     * @return
     */
    public static OSSObject getObject(String key, Boolean isCommon) {
    	OSSClient client = new OSSClient(OSS_ENDPOINT, OSS_KEY, OSS_SECRET);
    	String bucketName = OSS_BUCKETNAME;
        if (isCommon) {
        	bucketName = COMMON_OSS_BUCKETNAME;
        }
    	return client.getObject(bucketName, key);
    }
    
    /**
     * 下载指定文件名到本地
     * @param key
     */
    public static void getObjectToFile(String key, String filePath, Boolean isCommon) {
    	OSSClient client = new OSSClient(OSS_ENDPOINT, OSS_KEY, OSS_SECRET);
    	// 新建GetObjectRequest
    	String bucketName = OSS_BUCKETNAME;
        if (isCommon) {
        	bucketName = COMMON_OSS_BUCKETNAME;
        }
    	GetObjectRequest getObjectRequest = new GetObjectRequest(bucketName, key);
    	// 下载Object到文件
    	client.getObject(getObjectRequest, new File(filePath));
    }
    
    /**
     * 获取制定目录的文件
     * @param dirName
     * @return
     */
    public static ObjectListing getObjects(String dirName, Boolean isCommon) {
        OSSClient client = new OSSClient(OSS_ENDPOINT, OSS_KEY, OSS_SECRET);
        // 构造ListObjectsRequest请求
        String bucketName = OSS_BUCKETNAME;
        if (isCommon) {
        	bucketName = COMMON_OSS_BUCKETNAME;
        }
        ListObjectsRequest listObjectsRequest = new ListObjectsRequest(bucketName);
        // "/" 为文件夹的分隔符
        listObjectsRequest.setDelimiter("/");
        // 列出fun目录下的所有文件和文件夹
        listObjectsRequest.setPrefix(dirName);
        return client.listObjects(listObjectsRequest);
    }


    public static void main(String[] args) {
        OSSClient client = new OSSClient(OSS_ENDPOINT, OSS_KEY, OSS_SECRET);
        ObjectListing listing = client.listObjects(OSS_BUCKETNAME);
        // 遍历所有Object
        for (OSSObjectSummary objectSummary : listing.getObjectSummaries()) {
            System.out.println(objectSummary.getKey());
        }
    }

第三步 运行项目 (ObjectListing listing = client.listObjects(OSS_BUCKETNAME)
上传文件(阿里)OSSFileUpload_第1张图片
输出便利结果, 运行成功!!!

你可能感兴趣的:(JAVA)