|
|
|
@ -25,38 +25,59 @@ import com.yami.shop.common.bean.Qiniu;
|
|
|
|
|
import java.util.Objects;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 文件上传配置
|
|
|
|
|
* 该类是文件上传相关的配置类,主要用于配置七牛云文件上传服务所需的各种组件实例,例如配置七牛云的存储区域、
|
|
|
|
|
* 创建上传管理实例、认证信息实例以及空间管理实例等,通过 Spring 的配置机制(@Configuration 和 @Bean 注解)将这些实例注入到 Spring 容器中,
|
|
|
|
|
* 方便在文件上传相关的业务逻辑中进行使用,使得文件上传功能能够与七牛云服务进行有效的集成。
|
|
|
|
|
*
|
|
|
|
|
* @author lgh
|
|
|
|
|
*/
|
|
|
|
|
@Configuration
|
|
|
|
|
public class FileUploadConfig {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private Qiniu qiniu;
|
|
|
|
|
// 通过 Spring 的自动注入机制,将 Qiniu 类型的配置对象注入到当前类中,该对象应该包含了七牛云服务相关的配置信息,如密钥、存储区域等。
|
|
|
|
|
@Autowired
|
|
|
|
|
private Qiniu qiniu;
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 根据配置文件选择机房
|
|
|
|
|
* 根据配置文件中的机房区域设置,创建并返回七牛云存储的配置实例(com.qiniu.storage.Configuration),
|
|
|
|
|
* 此配置实例指定了七牛云存储服务所使用的机房区域(Zone),通过判断配置对象(qiniu)中的机房区域枚举值(QiniuZone),
|
|
|
|
|
* 来选择对应的七牛云 Zone 实例,从而确定文件存储的具体机房位置,影响文件上传和存储的相关操作。
|
|
|
|
|
*
|
|
|
|
|
* @return 七牛云存储的配置实例,包含了选定的机房区域信息,用于后续七牛云相关服务实例的创建和操作。
|
|
|
|
|
*/
|
|
|
|
|
@Bean
|
|
|
|
|
public com.qiniu.storage.Configuration qiniuConfig() {
|
|
|
|
|
Zone zone = null;
|
|
|
|
|
// 判断配置对象中的机房区域枚举值是否为华北区(HUA_BEI),如果是,则创建对应的七牛云华北区 Zone 实例。
|
|
|
|
|
if (Objects.equals(qiniu.getZone(), QiniuZone.HUA_BEI)) {
|
|
|
|
|
zone = Zone.huabei();
|
|
|
|
|
} else if (Objects.equals(qiniu.getZone(), QiniuZone.HUA_DONG)) {
|
|
|
|
|
}
|
|
|
|
|
// 判断是否为华东区(HUA_DONG),若是,则创建华东区 Zone 实例。
|
|
|
|
|
else if (Objects.equals(qiniu.getZone(), QiniuZone.HUA_DONG)) {
|
|
|
|
|
zone = Zone.huadong();
|
|
|
|
|
} else if (Objects.equals(qiniu.getZone(), QiniuZone.HUA_NAN)) {
|
|
|
|
|
}
|
|
|
|
|
// 判断是否为华南区(HUA_NAN),若是,则创建华南区 Zone 实例。
|
|
|
|
|
else if (Objects.equals(qiniu.getZone(), QiniuZone.HUA_NAN)) {
|
|
|
|
|
zone = Zone.huanan();
|
|
|
|
|
} else if (Objects.equals(qiniu.getZone(), QiniuZone.BEI_MEI)) {
|
|
|
|
|
}
|
|
|
|
|
// 判断是否为北美区(BEI_MEI),若是,则创建北美区 Zone 实例。
|
|
|
|
|
else if (Objects.equals(qiniu.getZone(), QiniuZone.BEI_MEI)) {
|
|
|
|
|
zone = Zone.beimei();
|
|
|
|
|
} else if (Objects.equals(qiniu.getZone(), QiniuZone.XIN_JIA_PO)) {
|
|
|
|
|
}
|
|
|
|
|
// 判断是否为新加坡区(XIN_JIA_PO),若是,则创建新加坡区 Zone 实例。
|
|
|
|
|
else if (Objects.equals(qiniu.getZone(), QiniuZone.XIN_JIA_PO)) {
|
|
|
|
|
zone = Zone.xinjiapo();
|
|
|
|
|
}
|
|
|
|
|
// 使用选定的 Zone 实例创建并返回七牛云存储的配置实例,用于后续的七牛云服务操作。
|
|
|
|
|
return new com.qiniu.storage.Configuration(zone);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 构建一个七牛上传工具实例
|
|
|
|
|
* 创建并返回一个七牛云的上传管理实例(UploadManager),该实例用于执行文件上传到七牛云存储的具体操作,
|
|
|
|
|
* 它依赖于前面创建的七牛云存储配置实例(qiniuConfig() 方法返回的对象)来确定上传操作的相关配置,如机房区域等信息,
|
|
|
|
|
* 使得在进行文件上传时能够按照正确的配置与七牛云服务进行交互。
|
|
|
|
|
*
|
|
|
|
|
* @return 七牛云的上传管理实例,可用于在业务代码中调用其方法实现文件上传到七牛云存储的功能。
|
|
|
|
|
*/
|
|
|
|
|
@Bean
|
|
|
|
|
public UploadManager uploadManager() {
|
|
|
|
@ -64,8 +85,10 @@ public class FileUploadConfig {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 认证信息实例
|
|
|
|
|
* @return
|
|
|
|
|
* 创建并返回一个七牛云的认证信息实例(Auth),该实例用于生成七牛云服务调用所需的认证凭证,通过配置对象(qiniu)中的访问密钥(accessKey)和秘密密钥(secretKey),
|
|
|
|
|
* 按照七牛云的认证机制创建认证对象,使得后续与七牛云存储、空间管理等服务进行交互时能够进行身份验证,确保请求的合法性和安全性。
|
|
|
|
|
*
|
|
|
|
|
* @return 七牛云的认证信息实例,包含了基于配置的访问密钥和秘密密钥生成的认证凭证,用于七牛云服务调用时的身份验证。
|
|
|
|
|
*/
|
|
|
|
|
@Bean
|
|
|
|
|
public Auth auth() {
|
|
|
|
@ -73,10 +96,14 @@ public class FileUploadConfig {
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* 构建七牛空间管理实例
|
|
|
|
|
* 创建并返回一个七牛云的空间管理实例(BucketManager),该实例用于对七牛云存储中的空间(Bucket)进行管理操作,
|
|
|
|
|
* 例如文件的删除、查看空间信息等操作,它依赖于前面创建的认证信息实例(auth() 方法返回的对象)进行身份验证,
|
|
|
|
|
* 同时也依赖于七牛云存储配置实例(qiniuConfig() 方法返回的对象)来确定相关操作的配置信息,确保空间管理操作能够在正确的配置环境下进行。
|
|
|
|
|
*
|
|
|
|
|
* @return 七牛云的空间管理实例,可用于在业务代码中调用其方法实现对七牛云存储空间的管理功能。
|
|
|
|
|
*/
|
|
|
|
|
@Bean
|
|
|
|
|
public BucketManager bucketManager() {
|
|
|
|
|
return new BucketManager(auth(), qiniuConfig());
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|