文件存儲解決方案-阿里云OSS

文章目錄

    • 1.菜單分級顯示問題
        • 1.問題引出
          • 1.蘋果燈,放到節能燈下面也就是id大于127
          • 2.查看菜單,并沒有出現蘋果燈
          • 3.放到燈具下面id=42,就可以顯示
        • 2.問題分析和解決
          • 1.判斷可能出現問題的位置
          • 2.找到遞歸返回樹形菜單數據的位置
          • 3.這里出現問題的原因是,使用等號來比較了包裝類的數值,修改為equals即可
          • 4.關于Long類型的機制
            • 1.編寫測試用例
            • 2.結果
            • 3.debug 分析
          • 5.測試
            • 1.此時將蘋果燈的id設置成652
            • 2.成功顯示
    • 2.文件存儲解決方案
        • 1.文件存儲方案分析
        • 2.OSS在微服務架構位置
        • 3.上傳方式
          • 1.普通上傳方式
          • 2.服務端簽名后直傳
        • 4.創建Bucket
          • 1.進入對象存儲控制臺
          • 2.創建Bucket
          • 3.填寫配置信息
          • 4.查看Bucket
            • 1.文件列表查看文件
            • 2.如果想要訪問文件就使用url
        • 5.使用原生SDK上傳文件到Bucket
          • 1.找到OSS的SDK參考文檔
          • 2.sunliving-commodity 導入依賴這里選擇3.5.0版本
          • 3.編寫一個TestConroller
          • 4.找到上傳文件代碼并粘貼到TestConroller,然后引包,拋出異常
          • 5.回到控制臺找到指定信息
            • 1.Endpoint
            • 2.找到AccessKey管理
            • 3.選擇開始使用子用戶的AccessKey
            • 4.創建用戶
            • 5.填寫信息
            • 6.驗證一下
            • 7.復制一份并保留,AccessKey Secret 以后不會再出現
            • 8.選擇授權 -> 新增授權
            • 9.為剛才的子用戶授予權限
            • 10.查看子用戶信息
          • 6.將上一步找到的三個信息填到代碼中并指定其余信息
            • 1.Endpoint(前面需要加https://)
            • 2.設置環境變量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET
            • 3.bucketName
            • 4.填寫兩個文件路徑
          • 7.測試
            • 1.啟動 sunliving-commodity 模塊
            • 2.瀏覽器訪問 http://localhost:9091/test 發現500了,是環境變量未讀取成功
            • 3.第一次配置需要重啟電腦后再次訪問
            • 4.查看阿里云,上傳成功了!
          • 8.注意事項
        • 6.使用SpringCloudAlibabaOSS上傳文件到Bucket
          • 1.進入官網
          • 2.選擇OSS的demo
          • 3.引入依賴(跟官網不一樣)
          • 4.application.yml 配置信息
          • 5.編寫代碼
          • 6.測試
            • 1.瀏覽器訪問 http://localhost:9091/test2
            • 2.上傳成功
        • 7.服務端簽名后直傳(正片開始)
          • 1.官方文檔
          • 2.創建sunliving-service模塊
            • 1.創建maven模塊
            • 2.查看父子pom.xml
          • 3.參考sunliving-commodity來配置pom.xml
          • 4.配置application.yml 填寫對象存儲所需信息
          • 5.編寫啟動類com/sun/sunliving/service/OssServiceApplication.java 啟動測試
          • 6.目前文件目錄
          • 7.參考官方文檔編寫 com/sun/sunliving/service/controller/OssServiceController.java
            • 1.官方文檔
            • 2.OssServiceController 簽名直傳服務,返回一個簽名
            • 3.測試
        • 8.通過前端上傳圖片到OSS
          • 1.將上傳文件工具類放到 src/components下
          • 2.policy.js 向簽名直傳服務發送請求,獲取簽名(部署的時候注意修改)
          • 3.singleUpload.vue 就是一個上傳文件的組件,修改action
          • 4.啟動前后端項目測試
          • 5.src/views/modules/commodity/brand-add-or-update.vue 整合上傳文件的控件
            • 1.引入導出上傳文件的控件
            • 2.使用控件
            • 3.查看效果
            • 4.上傳出現跨域問題
          • 6.上傳文件跨域解決
            • 1.上傳文件之前**通過瀏覽器**向后端發送請求,獲取簽名
            • 2.從renren-fast模塊找到io/renren/config/CorsConfig.java的配置文件,放到后端項目即可解決第一個跨域
            • 3.重啟后端,再次測試,還是有跨域問題
            • 4.第二個跨域問題分析
            • 5.在阿里云OSS解決跨域
            • 6.再次測試,成功!
          • 7.使用前端工具類進行文件上傳步驟梳理
            • 1.保證后端傳遞的簽名json對象使用data命名
            • 2.修改 policy.js 的url為后端返回簽名的接口
            • 3.修改 el-upload 標簽的action為 http:// + bucket + endpoint
            • 4.兩個跨域問題
        • 9.品牌管理列表顯示logo圖片
          • 1.目前插入數據,顯示的是url
            • 1.示意圖
            • 2.通過訪問這個url可以下載圖片
          • 2.使用插槽機制顯示圖片
          • 3.結果展示

1.菜單分級顯示問題

1.問題引出
1.蘋果燈,放到節能燈下面也就是id大于127

image-20240413125405130

2.查看菜單,并沒有出現蘋果燈

image-20240413125613174

3.放到燈具下面id=42,就可以顯示

image-20240413125847868

2.問題分析和解決
1.判斷可能出現問題的位置

由于前端是直接調用了樹形控件,展示了一下數據,所以應該是后端返回的數據的問題,則出現問題的位置應該是遞歸返回樹形菜單數據的時候

2.找到遞歸返回樹形菜單數據的位置

image-20240413131218590

3.這里出現問題的原因是,使用等號來比較了包裝類的數值,修改為equals即可

image-20240413131434396

4.關于Long類型的機制
1.編寫測試用例
package io.renren;/*** Description:** @Author sun* @Create 2024/4/13 13:16* @Version 1.0*/
public class T1 {public static void main(String[] args) {Long num1 = 128l;Long num2 = 128l;System.out.println(num2 == num1);}
}
2.結果

image-20240413131802993

3.debug 分析
  • 如果包裝類的值在-128 到 127之間,直接返回int類型,但是如果不在這個范圍內就會返回一個Long類型
  • 此時使用等號比較的就是兩個引用的地址了,由于都是new的,所以肯定不同

image-20240413131853332

5.測試
1.此時將蘋果燈的id設置成652

image-20240413132446091

2.成功顯示

image-20240413132513908

2.文件存儲解決方案

1.文件存儲方案分析

image-20240413134000624

2.OSS在微服務架構位置

image-20240413134458528

3.上傳方式
1.普通上傳方式

image-20240413135958474

2.服務端簽名后直傳

image-20240413140253228

4.創建Bucket
1.進入對象存儲控制臺

https://oss.console.aliyun.com/overview

image-20240413141743449

2.創建Bucket

image-20240413142031291

3.填寫配置信息

image-20240413142619872

4.查看Bucket
1.文件列表查看文件

image-20240413142836396

2.如果想要訪問文件就使用url

image-20240413142929341

5.使用原生SDK上傳文件到Bucket
1.找到OSS的SDK參考文檔

https://help.aliyun.com/zh/oss/developer-reference/java/?spm=a2c4g.11186623.0.0.35d25b0fLIE7J7

image-20240413143638506

2.sunliving-commodity 導入依賴這里選擇3.5.0版本
        <dependency><groupId>com.aliyun.oss</groupId><artifactId>aliyun-sdk-oss</artifactId><version>3.5.0</version></dependency>

image-20240413143926785

3.編寫一個TestConroller
package com.sun.sunliving.commodity.controller;import com.sun.common.utils.R;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;/*** Description:** @Author sun* @Create 2024/4/13 14:40* @Version 1.0*/
@RestController
@Slf4j
public class TestConroller {// 測試 aliyun-sdk-oss的使用// 編寫方法上傳文件到bucket@RequestMapping("/test")public R test() {return null;}
}
4.找到上傳文件代碼并粘貼到TestConroller,然后引包,拋出異常

image-20240413151722312

image-20240413144750030

5.回到控制臺找到指定信息
1.Endpoint

image-20240413145600239

2.找到AccessKey管理

image-20240413145733962

3.選擇開始使用子用戶的AccessKey

image-20240413145857890

4.創建用戶

image-20240413150031036

5.填寫信息

image-20240413150134355

6.驗證一下

image-20240413150154620

7.復制一份并保留,AccessKey Secret 以后不會再出現

image-20240413150408127

8.選擇授權 -> 新增授權

image-20240413150757775

9.為剛才的子用戶授予權限

image-20240413151022624

10.查看子用戶信息

https://ram.console.aliyun.com/permissions

image-20240413151135565

6.將上一步找到的三個信息填到代碼中并指定其余信息
1.Endpoint(前面需要加https://)
https://oss-cn-beijing.aliyuncs.com

image-20240413152448342

2.設置環境變量OSS_ACCESS_KEY_ID和OSS_ACCESS_KEY_SECRET

image-20240413152118752

echo %OSS_ACCESS_KEY_ID%
echo %OSS_ACCESS_KEY_SECRET%
可以查看win環境變量是否生效
3.bucketName

image-20240413152342933

image-20240413152507887

4.填寫兩個文件路徑

image-20240413153002835

7.測試
1.啟動 sunliving-commodity 模塊

image-20240413153149593

2.瀏覽器訪問 http://localhost:9091/test 發現500了,是環境變量未讀取成功

image-20240413153628294

image-20240413153647357

3.第一次配置需要重啟電腦后再次訪問

image-20240413155656859

4.查看阿里云,上傳成功了!

image-20240413155800339

8.注意事項

文件名可能會重復,可以根據時間來生成目錄和文件名,之前寫過

6.使用SpringCloudAlibabaOSS上傳文件到Bucket
1.進入官網

https://github.com/alibaba/spring-cloud-alibaba/blob/2022.x/README-zh.md

2.選擇OSS的demo

image-20240413160504696

image-20240413160604366

3.引入依賴(跟官網不一樣)
        <dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alicloud-oss</artifactId><version>2.1.0.RELEASE</version></dependency>
4.application.yml 配置信息

image-20240413161438839

5.編寫代碼
@RestController
@Slf4j
public class TestConroller {// 第二個測試@Resourceprivate OSS ossClient;@RequestMapping("/test2")public R test2() {// 上傳文件// 填寫Bucket名稱,例如examplebucket。String bucketName = "sunliving";// 填寫Object完整路徑,完整路徑中不能包含Bucket名稱,例如exampledir/exampleobject.txt。String objectName = "testdir/test2.jpg";// 填寫本地文件的完整路徑,例如D:\\localpath\\examplefile.txt。String filePath= "C:\\Users\\86156\\Desktop\\images\\3.25.png";PutObjectRequest putObjectRequest = new PutObjectRequest(bucketName, objectName, new File(filePath));ossClient.putObject(putObjectRequest);ossClient.shutdown();return R.ok();}
}
6.測試
1.瀏覽器訪問 http://localhost:9091/test2

image-20240413162251054

2.上傳成功

image-20240413162306041

7.服務端簽名后直傳(正片開始)
1.官方文檔

https://help.aliyun.com/zh/oss/use-cases/obtain-signature-information-from-the-server-and-upload-data-to-oss?spm=a2c4g.11186623.0.0.518d5d03pHGK3i

https://help.aliyun.com/zh/oss/use-cases/java-1?spm=a2c4g.11186623.0.0.c14f5d03xW8RIq

image-20240413162845855

image-20240414102059697

2.創建sunliving-service模塊
1.創建maven模塊

image-20240413163820934

2.查看父子pom.xml

image-20240413163900598

image-20240413163925710

3.參考sunliving-commodity來配置pom.xml
    <!-- 添加描述信息 --><description>sun(家居生活)-OSS服務</description><!-- 導入SpringBoot父工程 --><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>2.1.8.RELEASE</version><relativePath/> <!-- 當parent的groupId沒有指向父工程時就需要加 --></parent><properties><java.version>1.8</java.version><!-- SpringCloud版本 2020.0.5--><spring-cloud.version>2020.0.5</spring-cloud.version><!-- 解決java: -source 1.5 中不支持 diamond 運算符 問題 --><maven.compiler.source>1.8</maven.compiler.source><maven.compiler.target>1.8</maven.compiler.target></properties><dependencies><!-- 阿里云對象存儲依賴 --><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alicloud-oss</artifactId><version>2.1.0.RELEASE</version></dependency><!-- SpringBoot web模塊 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><!-- SpringBoot test模塊 --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency><!-- 公共模塊 --><dependency><groupId>com.sun.sunliving</groupId><artifactId>sunliving-common</artifactId><version>1.0-SNAPSHOT</version><!-- 排除mybatis-plus-boot-starter, 因為不使用,就不會配置application.yml的mybatis-plus的部分,不排除會報錯 --><exclusions><exclusion><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId></exclusion></exclusions></dependency></dependencies><!-- maven打包常規配置 --><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>
4.配置application.yml 填寫對象存儲所需信息
server:port: 7070
spring:cloud:alicloud:oss:endpoint: oss-cn-beijing.aliyuncs.combucket: sunlivingaccess-key: *******secret-key: *******
5.編寫啟動類com/sun/sunliving/service/OssServiceApplication.java 啟動測試
package com.sun.sunliving.service;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;/*** Description:** @Author sun* @Create 2024/4/14 10:40* @Version 1.0*/
@SpringBootApplication
public class OssServiceApplication {public static void main(String[] args) {SpringApplication.run(OssServiceApplication.class, args);}
}

image-20240414104340796

6.目前文件目錄

image-20240414104456226

7.參考官方文檔編寫 com/sun/sunliving/service/controller/OssServiceController.java
1.官方文檔

image-20240414104754482

2.OssServiceController 簽名直傳服務,返回一個簽名
package com.sun.sunliving.service.controller;import com.aliyun.oss.OSS;
import com.aliyun.oss.common.utils.BinaryUtil;
import com.aliyun.oss.model.MatchMode;
import com.aliyun.oss.model.PolicyConditions;
import com.sun.common.utils.R;
import org.codehaus.jettison.json.JSONObject;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.LinkedHashMap;
import java.util.Map;/*** Description: 簽名直傳服務** @Author sun* @Create 2024/4/14 10:45* @Version 1.0*/
@RestController
public class OssServiceController {// 注入OSS對象@Resourceprivate OSS ossClient;// 從配置文件中獲取accessId@Value("${spring.cloud.alicloud.access-key}")private String accessId;// 從配置文件中獲取endpoint@Value("${spring.cloud.alicloud.oss.endpoint}")private String endpoint;// 從配置文件中獲取bucket@Value("${spring.cloud.alicloud.oss.bucket}")private String bucket;@RequestMapping("/oss/policy")public R policy() {try {// host的格式為 http:// + bucket + . + endpointString host = "https://" + bucket + "." + endpoint;// 根據當前日期來存放文件String dir = new SimpleDateFormat("yyyy-MM-dd").format(new Date()) + "/";long expireTime = 30; // 默認30秒過期long expireEndTime = System.currentTimeMillis() + expireTime * 1000;Date expiration = new Date(expireEndTime);// PostObject請求最大可支持的文件大小為5 GB,即CONTENT_LENGTH_RANGE為5*1024*1024*1024。PolicyConditions policyConds = new PolicyConditions();policyConds.addConditionItem(PolicyConditions.COND_CONTENT_LENGTH_RANGE, 0, 1048576000);policyConds.addConditionItem(MatchMode.StartWith, PolicyConditions.COND_KEY, dir);String postPolicy = ossClient.generatePostPolicy(expiration, policyConds);byte[] binaryData = postPolicy.getBytes("utf-8");String encodedPolicy = BinaryUtil.toBase64String(binaryData);String postSignature = ossClient.calculatePostSignature(postPolicy);// 返回的信息Map<String, String> respMap = new LinkedHashMap<String, String>();respMap.put("accessid", accessId);respMap.put("policy", encodedPolicy);respMap.put("signature", postSignature); // 簽名respMap.put("dir", dir);respMap.put("host", host);respMap.put("expire", String.valueOf(expireEndTime / 1000));JSONObject jasonCallback = new JSONObject();// jasonCallback.put("callbackUrl", callbackUrl);jasonCallback.put("callbackBody","filename=${object}&size=${size}&mimeType=${mimeType}&height=${imageInfo.height}&width=${imageInfo.width}");jasonCallback.put("callbackBodyType", "application/x-www-form-urlencoded");String base64CallbackBody = BinaryUtil.toBase64String(jasonCallback.toString().getBytes());respMap.put("callback", base64CallbackBody);return R.ok().put("data", respMap);} catch (Exception e) {System.out.println(e.getMessage());return R.error();} finally {ossClient.shutdown();}}
}
3.測試

image-20240414112556827

8.通過前端上傳圖片到OSS
1.將上傳文件工具類放到 src/components下

image-20240414113130659

2.policy.js 向簽名直傳服務發送請求,獲取簽名(部署的時候注意修改)

image-20240414113456945

3.singleUpload.vue 就是一個上傳文件的組件,修改action

image-20240414113958137

4.啟動前后端項目測試

image-20240414114456217

5.src/views/modules/commodity/brand-add-or-update.vue 整合上傳文件的控件
1.引入導出上傳文件的控件

image-20240414115513519

2.使用控件

image-20240414115839061

3.查看效果

image-20240414115859829

4.上傳出現跨域問題

image-20240414120134558

6.上傳文件跨域解決
1.上傳文件之前通過瀏覽器向后端發送請求,獲取簽名
  • 首先調用beforeUpload方法

  • 然后調用policy方法,就是policy.js的方法

image-20240414133848724

  • policy.js的方法通過瀏覽器向后端發送請求獲取簽名,此時出現跨域

image-20240414134148637

2.從renren-fast模塊找到io/renren/config/CorsConfig.java的配置文件,放到后端項目即可解決第一個跨域

image-20240414121549866

3.重啟后端,再次測試,還是有跨域問題

image-20240414130555641

4.第二個跨域問題分析

從瀏覽器報錯中可以看到這次是向oos發送請求,進行保存文件的,也是滿足跨域條件

5.在阿里云OSS解決跨域

網址:https://oss.console.aliyun.com/bucket/oss-cn-beijing/sunliving/data-security/cors

image-20240414135739013

image-20240414135907502

6.再次測試,成功!

image-20240414135948647

image-20240414140246723

7.使用前端工具類進行文件上傳步驟梳理
1.保證后端傳遞的簽名json對象使用data命名

image-20240414141202639

2.修改 policy.js 的url為后端返回簽名的接口

image-20240414141430133

3.修改 el-upload 標簽的action為 http:// + bucket + endpoint

image-20240414141613112

4.兩個跨域問題
  1. 前端向后端簽名接口發送請求
  2. 前端向OSS發送請求存儲圖片
9.品牌管理列表顯示logo圖片
1.目前插入數據,顯示的是url
1.示意圖

image-20240414142356141

2.通過訪問這個url可以下載圖片

image-20240414142457068

2.使用插槽機制顯示圖片
        <!-- 使用插槽機制來顯示圖片 --><template slot-scope="scope"><img:src="scope.row.logo"style="width: 80px;"></template>

image-20240414144846826

3.結果展示

image-20240414144903146

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/13070.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/13070.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/13070.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Golang 的 unmarshal 踩坑指南

文章目錄 1. 寫在最前面2. 字段區分出空字段還是未設置字段2.1 問題描述2.2 解決 3. 字段支持多種類型 & 按需做不同類型處理3.1 問題描述3.2 解決 4. 碎碎念5. 參考資料 1. 寫在最前面 筆者最近在實現將內部通知系統的數據定義轉化為產品定義的對外提供的數據結構。 舉例…

算法學習筆記(5.0)-基于比較的高效排序算法-歸并排序

##時間復雜度O(nlogn) 目錄 ##時間復雜度O(nlogn) ##遞歸實現歸并排序 ##原理 ##圖例 ##代碼實現 ##非遞歸實現歸并排序 ##釋 #代碼實現 ##遞歸實現歸并排序 ##原理 是一種基于分治策略的基礎排序算法。 1.劃分階段&#xff1a;通過不斷遞歸地將數組從中點處分開&…

Java 開發 框架安全:Spring 命令執行漏洞.(CVE-2022-22965)

什么叫 Spring 框架. Spring 框架是一個用于構建企業級應用程序的開源框架。它提供了一種全面的編程和配置模型&#xff0c;可以簡化應用程序的開發過程。Spring 框架的核心特性包括依賴注入&#xff08;Dependency Injection&#xff09;、面向切面編程&#xff08;Aspect-Or…

【SpringBoot筆記43】SpringBoot應用程序集成spring-boot-admin監控工具

這篇文章,主要介紹SpringBoot應用程序如何集成spring-boot-admin監控工具。 目錄 一、spring-boot-admin監控工具 1.1、創建admin-client客戶端 (1)引入依賴

DeepSpeed

文章目錄 一、關于 DeepSpeed1、DeepSpeed 是什么2、深度學習訓練和推理的極致速度和規模3、DeepSpeed 的四大創新支柱1&#xff09;DeepSpeed 訓練2&#xff09;DeepSpeed 推理3&#xff09;DeepSpeed 壓縮4&#xff09;DeepSpeed4Science 4、DeepSpeed 軟件套件DeepSpeed 庫推…

React 第二十七章 Hook useCallback

useCallback 是 React 提供的一個 Hook 函數&#xff0c;用于優化性能。它的作用是返回一個記憶化的函數&#xff0c;當依賴發生變化時&#xff0c;才會重新創建并返回新的函數。 在 React 中&#xff0c;當一個組件重新渲染時&#xff0c;所有的函數都會被重新創建。這可能會…

青少年軟件編程(Python)等級考試試卷(五級)2024年3月

2024.03 電子學會 青少年軟件編程&#xff08;Python&#xff09;等級考試試卷&#xff08;五級&#xff09; 一、單選題 1.以下代碼的輸出結果是? ) nums list(range(100, 201)) print(nums[::10]) A.[100,110,120,130,140,150,160,170,180,190,200] B.[100,101,1…

QML筆記八

QML與C交互 QML中調用C功能、使用QML或者Quick中的C接口、使用C實現自定義的QML對象 注&#xff1a; 只有QObject的派生類才能與QML交互 QML引擎集成Qt元對象系統&#xff0c;QObject的派生子類的屬性、方法、信號都可以在QML中訪問 C類可以被注冊為一個QML實例 C類可以被注冊為…

【Web后端】請求頭

1、簡介 請求頭&#xff08;Request Headers&#xff09;是在HTTP協議中&#xff0c;客戶端&#xff08;如瀏覽器或應用程序&#xff09;向服務器發送請求時附帶的元數據。包含了關于請求的額外信息&#xff0c;有助于客戶端與服務器之間的有效通信。請求頭中的信息可以讓服務…

.[sqlback@memeware.net].2700勒索病毒數據怎么處理|數據解密恢復

導言&#xff1a; 隨著信息技術的飛速發展&#xff0c;網絡安全問題愈發嚴峻&#xff0c;其中勒索病毒成為了企業和個人用戶面臨的重要威脅之一。.[sqlbackmemeware.net].2700勒索病毒作為其中的佼佼者&#xff0c;以其獨特的攻擊方式和強大的破壞力&#xff0c;引起了廣泛關注…

【Go語言入門學習筆記】Part1.夢開始的地方

一、前言 經過一系列的學習&#xff0c;終于有時間來學習一些新的語言&#xff0c;Go語言在現在還是比較時髦的&#xff0c;多一個技能總比不多的好&#xff0c;故有時間來學一下。 二、配置環境 按照網絡中已有的配置方法配置好&#xff0c;本人采用了Jetbrain的Goland&#…

DTC 2024回顧丨zData X 多元數據庫一體機:開創多元數據庫時代部署新范式

導語 在2024“數據技術嘉年華”上&#xff0c;云和恩墨數據庫一體機產品總經理劉宇在“數據庫極致特性”專題論壇發表了題為《打造多元數據庫部署新范式&#xff0c;引領一體化資源池創新之路》的演講。他深入分析了國產數據庫面臨的挑戰&#xff0c;并詳細介紹了云和恩墨如何利…

5.10.1 Pre-Trained Image Processing Transformer

研究了低級計算機視覺任務&#xff08;例如去噪、超分辨率和去雨&#xff09;并開發了一種新的預訓練模型&#xff0c;即圖像處理變壓器&#xff08;IPT&#xff09;。利用著名的 ImageNet 基準來生成大量損壞的圖像對。 IPT 模型是在這些具有多頭和多尾的圖像上進行訓練的。此…

Megatron-lm、DeepSpeed

1、為了訓練更多的數據、更大的模型&#xff0c;提出了并行訓練框架。 2、并行的方式&#xff1a;數據并行、模型并行&#xff08;張量并行、流水線并行&#xff09;。 3、Megatron-LM 綜合應用了數據并行&#xff08;Data Parallelism&#xff09;&#xff0c;張量并行&…

內網安全工具之ADExplorer的使用

ADExplorer是域內一款信息查詢工具&#xff0c;它是獨立的可執行文件&#xff0c;無需安裝。它能夠列出域組織架構、用戶賬號、計算機賬號登&#xff0c;可以幫助尋找特權用戶和數據庫服務器等敏感目標。 下載地址&#xff1a;http://live.sysinternals.com/ 連接 下載了ADE…

第十四屆藍橋杯大賽軟件賽國賽C/C++ 大學 B 組 拼數字

//bfs只能過40%。 #include<bits/stdc.h> using namespace std; #define int long long int a,b,c,dp[2028]; struct s {int x,y,z;string m; }; map<vector<int>,int>k; signed main() {ios::sync_with_stdio(false);cin.tie(0),cout.tie(0);cin>>a…

Java入門基礎學習筆記24——While循環和do-while循環

1、While循環&#xff1a; 例1&#xff1a; package cn.ensource.loop;public class WhileDemo3 {public static void main(String[] args) {// 目標&#xff1a;掌握while循環的書寫格式&#xff0c;以及理解其執行流程// 需求&#xff1a;打印多行Hello Worldint i 0;while…

EFCore_創建項目

添加依賴 Microsoft.EntityFrameworkCore Microsoft.EntityFrameworkCore.Tools(Migration工具) 根據使用的DB添加對應依賴&#xff1a; SQL Server&#xff1a;Microsoft.EntityFrameworkCore.SqlServer 添加該依賴時可不添加Microsoft.EntityFrameworkCore&#xff0c;該依…

電工能混到這份上

最近看到某電工師傅發了一篇帖子&#xff0c;大致內容是他在處理一個簡單故障的時候居然花了很長的時間。我們一起來看看他遇到的是什么故障吧! plc 控制的一臺設備&#xff0c;行走部分靠 2 個腳踏開關控制&#xff08;內部開關量控制方向&#xff0c;電位器控制速度&#xff…

Java:使用BigDecimal、NumberFormat和DecimalFormat保留小數

一、代碼和調試結果 1.1 BigDecimal ![在這里插入圖片描述](https://img-blog.csdnimg.cn/direct/fa36749de8124266a730817710fdf737.png) 1.2 DecimalFormat 1.3 NumberFormat 二、原代碼 BigDecimalUtil.java 代碼 package utils;import java.math.BigDecimal; import jav…