阿里Oss对象存储服务基本工具集成

一、引言

阿里的oss对象存储服务器,提供了存储空间管理,文件上传下载,文件管理,音频与图像处理等常用操作,基本满足中小企业对于文件处理的需求,但官方提供的Api接口都是简版,demo级别的,并不适合直接使用,故在下在工作之余,对其常用Api进行封装,集成为OssUtils工具类。

二、Oss基本配置

阿里官网推举用子access_key_id和access_key_secrt,而不采用全局配置

/**
 * 对象存储Oss工具类
 *
 * @author sunyiran
 * @date 2018-11-07
 */
@Slf4j
public class OssUtils {

	/**
	 * 连接URL
	 */
	private static final String ENDPOINT = "XXXX";
	/**
	 * 实例ID
	 */
	private static final String ACCESS_KEY_ID = "XXXX";
	/**
	 * 实例密钥
	 */
	private static final String ACCESS_KEY_SECRET = "XXXX";
	/**
	 * 默认存储空间
	 */
	private static final String DEFAULT_BUCKETNAME = "syr-test";
	/**
	 * 默认图片格式
	 */
	private static final String DEFAULT_IMAGE_TYPE = "png";
	/**
	 * 默认压缩比例
	 */
	private static final int DEFAULT_SCALE = 10;
	/**
	 * 默认水印文字
	 */
	private static final String DEFAULT_CONTENT = "我的水印";
	/**
	 * 连接实例
	 */
	private static final OSSClient OSS_CLIENT;

	private static final String SUCCESS = "success";
	private static final String FAILED = "failed";

	static {
		// 创建ClientConfiguration实例,按照您的需要修改默认参数。
		ClientConfiguration conf = new ClientConfiguration();
		// 关闭CNAME选项。
		conf.setSupportCname(false);
		OSS_CLIENT = new OSSClient(ENDPOINT, ACCESS_KEY_ID, ACCESS_KEY_SECRET, conf);
	}
}

三、管理存储空间

采用不同的存储空间可以讲文件分类别存储,它具有创建,列举,获取详情,删除等操作。

 	/**
	 * 存储空间管理工具
	 */
	public static class BucketUtils {
		/**
		 * 创建新的存储空间
		 *
		 * @param bucketName
		 */
		public static String createBucket(String bucketName) {
			CreateBucketRequest createBucketRequest = new CreateBucketRequest(bucketName);
			// 设置存储空间的权限为公共读,默认是私有。
			createBucketRequest.setCannedACL(CannedAccessControlList.PublicRead);
			// 设置存储空间的存储类型为低频访问类型,默认是标准类型。
			createBucketRequest.setStorageClass(StorageClass.IA);
			try {
				OSS_CLIENT.createBucket(createBucketRequest);
				return SUCCESS;
			} catch (OSSException e) {
				log.error(e.getMessage());
				return FAILED;
			}
		}

		/**
		 * 列举存储空间
		 *
		 * @param bucketPrefix
		 */
		public static List<Bucket> listBucket(String bucketPrefix) {
			ListBucketsRequest listBucketsRequest = new ListBucketsRequest();
			// 列举指定前缀的存储空间。
			if (StringUtils.isNotBlank(bucketPrefix)) {
				listBucketsRequest.setPrefix(bucketPrefix);
			}
			try {
				return OSS_CLIENT.listBuckets(listBucketsRequest).getBucketList();
			} catch (OSSException e) {
				log.error(e.getMessage());
				return null;
			}
		}

		/**
		 * 获取存储空间信息
		 *
		 * @param bucketName
		 */
		public static Map getBucketInfo(String bucketName) {
			//判断空间是否存在
			boolean exists = OSS_CLIENT.doesBucketExist(bucketName);
			if (!exists) {
				return null;
			}
			// 存储空间的信息包括地域(Region或Location)、创建日期(CreationDate)、拥有者(Owner)、权限(Grants)等。
			Map<String, Object> result = new HashMap<>(
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值