上传文件(阿里)OSSFileUpload

使用 OSS 管理控制台

阿里oss网站说明

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

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

OSSFileUpload 工具类

第一步 pom

<!--阿里文件上传下载-->
		<dependency>
			<groupId>com.aliyun.oss</groupId>
			<artifactId>aliyun-sdk-oss</artifactId>
			<version>2.0.6</version>
			<scope>compile</scope>
		</dependency>
		<dependency>
			<groupId>com.aliyun</groupId>
			<artifactId>aliyun-java-sdk-dm</artifactId>
			<version>3.1.0</version>
		</dependency>

第二步 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;
        }
        // 上传文件。<yourLocalFile>由本地文件路径加文件名包括后缀组成,例如/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)?
在这里插入图片描述
输出便利结果, 运行成功!!!

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值