日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

一、對(duì)象存儲(chǔ)OSS

阿里云對(duì)象存儲(chǔ)OSS(Object Storage Service)具有豐富的安全防護(hù)能力,支持服務(wù)器端加密、客戶端加密、防盜鏈白名單、細(xì)粒度權(quán)限管控、日志審計(jì)、合規(guī)保留策略(WORM)等特性。OSS為您的云端數(shù)據(jù)安全進(jìn)行全方位的保駕護(hù)航,并滿足您企業(yè)數(shù)據(jù)的安全與合規(guī)要求。

二、應(yīng)用場(chǎng)景

數(shù)據(jù)簽遷移、數(shù)據(jù)湖、企業(yè)數(shù)據(jù)存儲(chǔ)和管理、數(shù)據(jù)處理、容災(zāi)與備份

Springboot集成阿里云對(duì)象存儲(chǔ)OSS

 

三、開(kāi)通阿里云OSS

1、(1)申請(qǐng)阿里云賬號(hào)

(2)實(shí)名認(rèn)證

(3)開(kāi)通“對(duì)象存儲(chǔ)OSS”服務(wù)

(4)進(jìn)入管理控制臺(tái)

Springboot集成阿里云對(duì)象存儲(chǔ)OSS

 

 

Springboot集成阿里云對(duì)象存儲(chǔ)OSS

 

2、創(chuàng)建Bucket

 

選擇:標(biāo)準(zhǔn)存儲(chǔ)、公共讀、不開(kāi)通

Springboot集成阿里云對(duì)象存儲(chǔ)OSS

 

3、上傳圖片

創(chuàng)建文件夾avatar,上傳默認(rèn)的用戶圖片

Springboot集成阿里云對(duì)象存儲(chǔ)OSS

 

4、創(chuàng)建RAM子用戶、用于程序訪問(wèn)對(duì)象存儲(chǔ)OSS

Springboot集成阿里云對(duì)象存儲(chǔ)OSS

 

四、使用SDK

Springboot集成阿里云對(duì)象存儲(chǔ)OSS

 

1,創(chuàng)建Maven項(xiàng)目

com.atguigu aliyun-oss

2,pom

<dependencies>
    <!-- 阿里云oss依賴 -->
    <dependency>
        <groupId>com.aliyun.oss</groupId>
        <artifactId>aliyun-sdk-oss</artifactId>
    </dependency>
    <!-- 日期工具欄依賴 -->
    <dependency>
        <groupId>joda-time</groupId>
        <artifactId>joda-time</artifactId>
    </dependency>
</dependencies>

3,找到編碼用的常量配置

(1)endpoint (2)bucketName (3)accessKeyId (4)accessKeySecret

4,測(cè)試Bucket連接

public class OSSTest {

    // Endpoint以杭州為例,其它Region請(qǐng)按實(shí)際情況填寫(xiě)。
    String endpoint = "oss-cn-beijing.aliyuncs.com";
    // 阿里云主賬號(hào)AccessKey擁有所有API的訪問(wèn)權(quán)限,風(fēng)險(xiǎn)很高。強(qiáng)烈建議您創(chuàng)建并使用RAM賬號(hào)進(jìn)行API訪問(wèn)或日常運(yùn)維,請(qǐng)登錄 https://ram.console.aliyun.com 創(chuàng)建RAM賬號(hào)。
    String accessKeyId = "LTAI5tSjEbLtaqn8HMe4zF4G";
    String accessKeySecret = "mGgEO1ueh5WdVK4oK4kJOSPQgHPR5m";
    String bucketName = "fire-file";

    @Test
    public void testCreateBucket() {
        // 創(chuàng)建OSSClient實(shí)例。
        OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
        // 創(chuàng)建存儲(chǔ)空間。
        ossClient.createBucket(bucketName);// 關(guān)閉OSSClient。
        System.out.println(ossClient.listBuckets());
//        ossClient.shutdown();

    }


    @Test
    public void testExist() {
        // 創(chuàng)建OSSClient實(shí)例。
        OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
        boolean exists = ossClient.doesBucketExist(bucketName);
        System.out.println(exists);
        // 關(guān)閉OSSClient。
        ossClient.shutdown();
    }
}

五、Springboot集成阿里云OSS

1,在service模塊下創(chuàng)建子模塊service-oss

Springboot集成阿里云對(duì)象存儲(chǔ)OSS

 

2,配置Pom.xml

service-oss上級(jí)模塊service已經(jīng)引入service的公共依賴,所以service-oss模塊只需引入阿里云oss相關(guān)依賴即可,service父模塊已經(jīng)引入了service-base模塊,所以Swagger相關(guān)默認(rèn)已經(jīng)引入,上邊已經(jīng)引過(guò)了

3,配置Application.properties

#服務(wù)端口
server.port=8002
#服務(wù)名
spring.application.name=service-oss
#環(huán)境設(shè)置:dev、test、prod
spring.profiles.active=dev
#阿里云 OSS
#不同的服務(wù)器,地址不同
aliyun.oss.file.endpoint=oss-cn-beijing.aliyuncs.com
aliyun.oss.file.keyid=LTAI5tSjEbLtaqn8HMe4zF4G
aliyun.oss.file.keysecret=mGgEO1ueh5WdVK4oK4kJOSPQgHPR5m
#bucket可以在控制臺(tái)創(chuàng)建,也可以使用JAVA代碼創(chuàng)建
aliyun.oss.file.bucketname=fire-file

5,創(chuàng)建啟動(dòng)類

@ComponentScan({"com.atguigu"})
@SpringBootApplication(exclude = DataSourceAutoConfiguration.class)
public class OssApplication {
    public static void main(String[] args) {
        SpringApplication.run(OssApplication.class,args);
    }
}

6,實(shí)現(xiàn)文件上傳

創(chuàng)建常量讀取工具類:
ConstantPropertiesUtil.java,使用@Value讀取application.properties里的配置內(nèi)容用spring的 InitializingBean 的 afterPropertiesSet 來(lái)初始化配置信息,這個(gè)方法將在所有的屬性被初始化后調(diào)用。

@Component
public class ConstantPropertiesUtil implements InitializingBean {
    @Value("${aliyun.oss.file.endpoint}")
    private String endpoint;
    @Value("${aliyun.oss.file.keyid}")
    private String keyId;
    @Value("${aliyun.oss.file.keysecret}")
    private String keySecret;
    @Value("${aliyun.oss.file.bucketname}")
    private String bucketName;

    public static String END_POINT;
    public static String ACCESS_KEY_ID;
    public static String ACCESS_KEY_SECRET;
    public static String BUCKET_NAME;

    @Override
    public void afterPropertiesSet() throws Exception {
        END_POINT = endpoint;
        ACCESS_KEY_ID = keyId;
        System.out.println(ACCESS_KEY_ID+"==========================");
        ACCESS_KEY_SECRET = keySecret;
        BUCKET_NAME = bucketName;
    }
}

7,文件上傳

創(chuàng)建Service接口:FileService.java

public interface FileService {

    /**
     * 文件上產(chǎn)到阿里云oss
     * @param file
     * @return
     */
    String upload(MultipartFile file);
}
@Service
public class FileServiceImpl implements FileService {
    @Override
    public String upload(MultipartFile file) {
        // 工具類獲取值
        String endpoint = ConstantPropertiesUtil.END_POINT;
        String accessKeyId = ConstantPropertiesUtil.ACCESS_KEY_ID;
        String accessKeySecret = ConstantPropertiesUtil.ACCESS_KEY_SECRET;
        String bucketName = ConstantPropertiesUtil.BUCKET_NAME;

        try {
            // 創(chuàng)建OSS實(shí)例。
            OSS ossClient = new OSSClientBuilder().build(endpoint, accessKeyId, accessKeySecret);

            //獲取上傳文件輸入流
            InputStream inputStream = file.getInputStream();
            //獲取文件名稱
            String fileName = file.getOriginalFilename();

            //1 在文件名稱里面添加隨機(jī)唯一的值
            String uuid = UUID.randomUUID().toString().replaceAll("-","");
            // yuy76t5rew01.jpg
            fileName = uuid+fileName;

            //2 把文件按照日期進(jìn)行分類
            //獲取當(dāng)前日期
            //   2019/11/12
            String datePath = new DateTime().toString("yyyy/MM/dd");
            //拼接
            //  2019/11/12/ewtqr313401.jpg
            fileName = datePath+"/"+fileName;

            //調(diào)用oss方法實(shí)現(xiàn)上傳
            //第一個(gè)參數(shù)  Bucket名稱
            //第二個(gè)參數(shù)  上傳到oss文件路徑和文件名稱   aa/bb/1.jpg
            //第三個(gè)參數(shù)  上傳文件輸入流
            ossClient.putObject(bucketName,fileName , inputStream);

            // 關(guān)閉OSSClient。
            ossClient.shutdown();

            //把上傳之后文件路徑返回
            //需要把上傳到阿里云oss路徑手動(dòng)拼接出來(lái)
            //  https://edu-guli-1010.oss-cn-beijing.aliyuncs.com/01.jpg
            String url = "http://"+bucketName+"."+endpoint+"/"+fileName;
            return url;
        }catch(Exception e) {
            e.printStackTrace();
            return null;
        }
    }
}

控制層


@RestController
@RequestMapping("/eduoss")
@CrossOrigin
public class FileUploadController {

    @Autowired
    private FileService fileService;


    /**
     * 13
     * 文件上傳
     * 14
     * <p>
     * 15
     *
     * @param file 16
     */
    @ApiOperation(value = "文件上傳")
    @PostMapping("upload")
    public R upload(
            @ApiParam(name = "file", value = "文件", required = true) @RequestParam("file") MultipartFile file) {
        String uploadUrl = fileService.upload(file);
        //返回r對(duì)象
        return R.ok().message("文件上傳成功").data("url", uploadUrl);

    }


}

重啟OSS服務(wù),用Swagger進(jìn)行測(cè)試。

分享到:
標(biāo)簽:OSS
用戶無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過(guò)答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定