shikeying
2024-02-23 1d6e7763f4a30272cc0818ea12f83697b7375c45
iplatform-file-server/src/main/java/com/iplatform/file/config/FileConfig.java
@@ -1,11 +1,13 @@
package com.iplatform.file.config;
import com.iplatform.base.config.FileProperties;
import com.iplatform.core.PlatformConfiguration;
import com.iplatform.file.FileEngineFactory;
import com.iplatform.file.FileStoreCallback;
import com.iplatform.file.service.FileServiceImpl;
import com.iplatform.file.support.AliOssFileEngine;
import com.iplatform.file.support.AttachmentJdbcCallback;
import com.iplatform.file.support.AwsOssFileEngine;
import com.iplatform.file.support.DefaultFileSystemEngine;
import com.iplatform.file.support.DefaultFtpFileEngine;
import com.iplatform.file.support.QnOssFileEngine;
@@ -17,7 +19,7 @@
import org.springframework.context.annotation.Configuration;
@Configuration
public class FileConfig {
public class FileConfig extends PlatformConfiguration {
    /**
     * 配置一个文件引擎工厂对象。
@@ -30,6 +32,7 @@
    @Bean
    public FileEngineFactory fileEngineFactory(DefaultFtpFileEngine ftpFileEngine, DefaultFileSystemEngine fileSystemEngine
            , QnOssFileEngine qnOssFileEngine, TxOssFileEngine txOssFileEngine, AliOssFileEngine aliOssFileEngine
            , AwsOssFileEngine awsOssFileEngine
            , ArgumentsManager argumentsManager, FileProperties fileProperties){
        FileEngineFactory fileEngineFactory = new FileEngineFactory();
        fileEngineFactory.register(FileStoreType.Ftp, ftpFileEngine);
@@ -37,6 +40,9 @@
        fileEngineFactory.register(FileStoreType.OssQiNiu, qnOssFileEngine);
        fileEngineFactory.register(FileStoreType.OssTx, txOssFileEngine);
        fileEngineFactory.register(FileStoreType.OssAli, aliOssFileEngine);
        // 2023-12-13
        fileEngineFactory.register(FileStoreType.OssAws, awsOssFileEngine);
        fileEngineFactory.setArgumentsManager(argumentsManager);
        fileEngineFactory.setRemoteAsLocal(fileProperties.isRemoteAsLocal());
        fileEngineFactory.startup();
@@ -44,6 +50,28 @@
    }
    /**
     * 创建:OSS服务引擎。
     *
     * @param fileProperties
     * @param fileStoreCallback
     * @return
     * @date 2023-12-13
     */
    @Bean
    public AwsOssFileEngine awsOssFileEngine(FileProperties fileProperties, FileStoreCallback fileStoreCallback) throws Exception {
        AwsOssFileEngine engine = new AwsOssFileEngine();
        engine.setPrefix(fileProperties.getOssPrefix());
        engine.setFileStoreCallback(fileStoreCallback);
        engine.setAccessKey(fileProperties.getOssAccessKey());
        engine.setSecretKey(fileProperties.getOssSecretKey());
        engine.setEndpoint(fileProperties.getOssEndpoint());
        engine.setBucketName(fileProperties.getOssBucketName());
        engine.initS3Client();
        logger.info(".............. OSS 初始化: 亚马逊S3!");
        return engine;
    }
    /**
     * 阿里云 OSS 文件引擎定义。
     * @param fileProperties
     * @param fileStoreCallback