|
|
|
@ -0,0 +1,112 @@
|
|
|
|
|
/*
|
|
|
|
|
* Copyright (c) 2018-2999 广州市蓝海创新科技有限公司 All rights reserved.
|
|
|
|
|
*
|
|
|
|
|
* https://www.mall4j.com/
|
|
|
|
|
*
|
|
|
|
|
* 未经允许,不可做商业用途!
|
|
|
|
|
*
|
|
|
|
|
* 版权所有,侵权必究!
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
package com.yami.shop.common.config;
|
|
|
|
|
|
|
|
|
|
// 导入相关的自定义类,可能用于存储图片上传相关的配置、枚举等信息
|
|
|
|
|
import com.yami.shop.common.bean.ImgUpload;
|
|
|
|
|
import com.yami.shop.common.enums.QiniuZone;
|
|
|
|
|
// 导入Spring的注解相关类,用于实现依赖注入和配置相关功能
|
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
|
import org.springframework.context.annotation.Bean;
|
|
|
|
|
import org.springframework.context.annotation.Configuration;
|
|
|
|
|
|
|
|
|
|
// 导入七牛云相关的类,用于与七牛云存储服务进行交互,涉及区域、上传管理、认证等功能
|
|
|
|
|
import com.qiniu.common.Zone;
|
|
|
|
|
import com.qiniu.storage.BucketManager;
|
|
|
|
|
import com.qiniu.storage.UploadManager;
|
|
|
|
|
import com.qiniu.util.Auth;
|
|
|
|
|
import com.yami.shop.common.bean.Qiniu;
|
|
|
|
|
|
|
|
|
|
import java.util.Objects;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 文件上传配置类,主要用于整合七牛云存储相关的配置与实例创建,
|
|
|
|
|
* 通过依赖注入获取配置信息,并根据配置来构建七牛云存储操作所需的各种实例,
|
|
|
|
|
* 如存储配置、上传管理实例、认证实例以及空间管理实例等,方便在项目中进行文件上传等操作。
|
|
|
|
|
* @author lgh
|
|
|
|
|
*/
|
|
|
|
|
@Configuration
|
|
|
|
|
public class FileUploadConfig {
|
|
|
|
|
|
|
|
|
|
// 通过Spring的依赖注入,获取Qiniu类型的配置对象,该对象应该包含了七牛云相关的配置信息,如密钥、机房区域等
|
|
|
|
|
@Autowired
|
|
|
|
|
private Qiniu qiniu;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 根据配置文件选择机房,创建七牛云存储的配置实例(com.qiniu.storage.Configuration)。
|
|
|
|
|
* 会根据注入的Qiniu对象中的机房区域配置(QiniuZone枚举类型)来确定对应的七牛云机房区域(Zone),
|
|
|
|
|
* 并以此构建七牛云存储配置实例,该实例后续会被其他七牛云相关操作的实例所使用。
|
|
|
|
|
*
|
|
|
|
|
* @return com.qiniu.storage.Configuration 返回构建好的七牛云存储配置实例,包含了指定的机房区域信息。
|
|
|
|
|
*/
|
|
|
|
|
@Bean
|
|
|
|
|
public com.qiniu.storage.Configuration qiniuConfig() {
|
|
|
|
|
Zone zone = null;
|
|
|
|
|
// 判断配置中的机房区域是否为华北区,如果是则设置对应的七牛云机房区域为华北区(Zone.huabei())
|
|
|
|
|
if (Objects.equals(qiniu.getZone(), QiniuZone.HUA_BEI)) {
|
|
|
|
|
zone = Zone.huabei();
|
|
|
|
|
}
|
|
|
|
|
// 判断是否为华东区,若是则设置对应的七牛云机房区域为华东区(Zone.huadong())
|
|
|
|
|
else if (Objects.equals(qiniu.getZone(), QiniuZone.HUA_DONG)) {
|
|
|
|
|
zone = Zone.huadong();
|
|
|
|
|
}
|
|
|
|
|
// 判断是否为华南区,若是则设置对应的七牛云机房区域为华南区(Zone.huanan())
|
|
|
|
|
else if (Objects.equals(qiniu.getZone(), QiniuZone.HUA_NAN)) {
|
|
|
|
|
zone = Zone.huanan();
|
|
|
|
|
}
|
|
|
|
|
// 判断是否为北美区,若是则设置对应的七牛云机房区域为北美区(Zone.beimei())
|
|
|
|
|
else if (Objects.equals(qiniu.getZone(), QiniuZone.BEI_MEI)) {
|
|
|
|
|
zone = Zone.beimei();
|
|
|
|
|
}
|
|
|
|
|
// 判断是否为新加坡区,若是则设置对应的七牛云机房区域为新加坡区(Zone.xinjiapo())
|
|
|
|
|
else if (Objects.equals(qiniu.getZone(), QiniuZone.XIN_JIA_PO)) {
|
|
|
|
|
zone = Zone.xinjiapo();
|
|
|
|
|
}
|
|
|
|
|
// 使用确定好的机房区域(zone)构建七牛云存储配置实例并返回
|
|
|
|
|
return new com.qiniu.storage.Configuration(zone);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 构建一个七牛上传工具实例(UploadManager),
|
|
|
|
|
* 该实例依赖于前面创建的七牛云存储配置实例(qiniuConfig方法创建的com.qiniu.storage.Configuration实例),
|
|
|
|
|
* 用于在项目中执行文件上传到七牛云存储的操作。
|
|
|
|
|
*
|
|
|
|
|
* @return UploadManager 返回构建好的七牛上传工具实例,可用于文件上传操作。
|
|
|
|
|
*/
|
|
|
|
|
@Bean
|
|
|
|
|
public UploadManager uploadManager() {
|
|
|
|
|
return new UploadManager(qiniuConfig());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 构建七牛云认证信息实例(Auth),
|
|
|
|
|
* 通过获取注入的Qiniu对象中的访问密钥(accessKey)和秘密密钥(secretKey)来创建认证实例,
|
|
|
|
|
* 该认证实例在后续与七牛云服务进行交互时(如上传、管理空间等操作)用于验证身份,确保操作的合法性。
|
|
|
|
|
*
|
|
|
|
|
* @return Auth 返回构建好的七牛云认证信息实例,包含了访问密钥和秘密密钥信息用于认证。
|
|
|
|
|
*/
|
|
|
|
|
@Bean
|
|
|
|
|
public Auth auth() {
|
|
|
|
|
return Auth.create(qiniu.getAccessKey(), qiniu.getSecretKey());
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 构建七牛空间管理实例(BucketManager),
|
|
|
|
|
* 该实例依赖于前面创建的认证信息实例(auth方法创建的Auth实例)和七牛云存储配置实例(qiniuConfig方法创建的实例),
|
|
|
|
|
* 用于在七牛云存储中进行空间相关的管理操作,比如查看、删除、移动文件等操作。
|
|
|
|
|
*
|
|
|
|
|
* @return BucketManager 返回构建好的七牛空间管理实例,可用于七牛云存储空间的管理操作。
|
|
|
|
|
*/
|
|
|
|
|
@Bean
|
|
|
|
|
public BucketManager bucketManager() {
|
|
|
|
|
return new BucketManager(auth(), qiniuConfig());
|
|
|
|
|
}
|
|
|
|
|
}
|