Java 实现OSS文件上传中间件

  Java 实现阿里云OSS文件上传

  首先maven包

  

  <!--OSS-->
        <dependency>
            <groupId>com.aliyun.oss</groupId>
            <artifactId>aliyun-sdk-oss</artifactId>
            <version>2.2.1</version>
        </dependency>
    </dependencies>

之后配置文件

oss:
  address: oss-cn-beijing.aliyuncs.com/
  accessKey: 
  accessSecret: 
  bucketName: weinuoqinggan
  filePath: picture/

我用的springboot的yml文件 然后直接采取注解读取 注入到spring容器中

import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;

/**
 * 
 * @author 阿里文件上传OSS
 */
@Component
@ConfigurationProperties(prefix = "oss")
@Data
public class AliOssConfig {

	private String address;

	private String accessKey;

	private String accessSecret;

	private String bucketName;

	private String filePath;

}

最后就是我们的文件上传工具类了

import com.aliyun.oss.OSSClient;
import com.feeling.core.config.AliOssConfig;
import com.feeling.core.util.LogUtils;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;

import java.io.ByteArrayInputStream;
import java.util.Date;
import java.util.UUID;

/**
 * 阿里云OSS文件上传
 *
 */
@Component
public class AliOssUploadServer {
	
	protected static final Logger logger = LogUtils.getPlatformLogger();

	@Autowired
	private AliOssConfig aliOssConfig;
	
	private static final String HOME_FILE="picture/";//相对路径
	
	public String fileOssUpload(MultipartFile file){
		String reqUrl="";
		String endPoint=aliOssConfig.getAddress();
		String accessKey=aliOssConfig.getAccessKey();
		String accessSecret=aliOssConfig.getAccessSecret();
		OSSClient client = new OSSClient(endPoint, accessKey, accessSecret);
		String bucket=aliOssConfig.getBucketName();
		//获取文件后缀名
		String fileType = StringUtils.substringAfterLast(file.getOriginalFilename(), ".");
		//文件相对路径+文件名.文件类型
		String fileName=HOME_FILE.concat(UUID.randomUUID().toString()).concat(".").concat(fileType);
		try {
			//时间戳
			Date expire = new Date(new Date().getTime() + 3600l * 1000 * 24 * 365 * 10);
			//文件上传
			client.putObject(bucket, fileName, new ByteArrayInputStream(file.getBytes()));
			//获取文件路径
			reqUrl=client.generatePresignedUrl(bucket, fileName, expire).toString();
			//截取文件多余参数
			reqUrl = reqUrl.substring(0,reqUrl.indexOf("?"));
		} catch (Exception e) {
			logger.error("aliOssUpload Fail:"+e.getMessage());
			return reqUrl;
		}finally{
			client.shutdown();
		}
		return reqUrl;
	}
}

测试

返回值

最后到oss的桶里去看看存在不存在

大功告成!!!

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值