失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > Alibaba Cloud OSS 阿里云对象存储 新版

Alibaba Cloud OSS 阿里云对象存储 新版

时间:2023-02-10 19:20:58

相关推荐

Alibaba Cloud OSS 阿里云对象存储 新版

官方地址:对象存储 OSS_云存储服务

示例代码地址:GitHub aliyun-oss-spring-boot-sample

上传策略:服务端签名后直传

通过服务器处理签名,但不处理文件,保证加密的同时,减轻服务的压力

开通

登录阿里云账号

选择oss服务进行开通

进入OSS管理控制台,创建一个bucket

鼠标悬浮右上角头像,点击AccessKey管理

选择使用子用户AccessKey

创建一个用户,并分配oss的读写权限

得到AccessKey IDAccessKey Secret

得到Endpoint(即外网访问地址)

搭建子项目

gulimall-third-party

pom.xml

<project xmlns="/POM/4.0.0" xmlns:xsi="/2001/XMLSchema-instance" xsi:schemaLocation="/POM/4.0.0 /maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <parent><groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.6.11</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.atguigu.gulimall</groupId> <artifactId>gulimall-third-party</artifactId> <version>0.0.1-SNAPSHOT</version> <name>gulimall-third-party</name> <description>gulimall-third-party</description> <properties><java.version>1.8</java.version> <spring-cloud.version>.0.4</spring-cloud.version> </properties> <dependencies><dependency> <groupId>com.atguigu.gulimall</groupId> <artifactId>gulimall-common</artifactId> <version>0.0.1-SNAPSHOT</version> <exclusions><exclusion> <groupId>com.baomidou</groupId> <artifactId>mybatis-plus-boot-starter</artifactId> </exclusion> </exclusions> </dependency> <dependency><groupId>com.alibaba.cloud</groupId> <artifactId>aliyun-oss-spring-boot-starter</artifactId> <version>1.0.0</version> </dependency> <!--导入高版本的sdk-oss--> <dependency> <groupId>com.aliyun</groupId> <artifactId>aliyun-java-sdk-core</artifactId> <version>4.4.5</version> </dependency> <!--openfeign--> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-openfeign</artifactId> </dependency> <!--web--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency><groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency> <dependency><groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency><groupId>org.junit.jupiter</groupId> <artifactId>junit-jupiter</artifactId> <scope>test</scope> </dependency> </dependencies> <dependencyManagement><dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-dependencies</artifactId> <version>${spring-cloud.version}</version> <type>pom</type> <scope>import</scope> </dependency> </dependencies> </dependencyManagement> </project>

yml

spring: application: name: gulimall-third-party cloud: nacos: server-addr: 127.0.0.1:8848 config: namespace: 24e69e01-f921-48bd-9888-41eceff74341 group: DEFAULT_GROUP config: import: - optional:nacos:oss.yml?refresh=true server: port: 30000#以下是配置在nacos中的oss.ymlalibaba: cloud: access-key: 你的access-keysecret-key: 你的secret-key oss: endpoint: oss-cn- #外网访问地址

GulimallThirdPartyApplication.java

@SpringBootApplication @EnableDiscoveryClient public class GulimallThirdPartyApplication { public static void main(String[] args) { SpringApplication.run(GulimallThirdPartyApplication.class, args); } }

测试类:

@SpringBootTest(classes = GulimallThirdPartyApplication.class) class GulimallThirdPartyApplicationTest { @Autowired OSSClient ossClient; @Test public void testUpload() throws FileNotFoundException { //上传文件流。 InputStream inputStream = new FileInputStream("C:\\Users\\admin\\Pictures\\1.jpg"); ossClient.putObject("bucketName", "Naruto.jpg", inputStream); // 关闭OSSClient。 ossClient.shutdown(); System.out.println("上传成功."); } }

结果:

前端请求跨域配置:

注意

注意使用新的starter,aliyun-oss-spring-boot-starteraliyun-oss-spring-boot-starter的sdk-oss版本(3.1.0)过低,当前springboot 版本较高(2.6.11)所以添加了更高版本的sdk-oss

Description:An attempt was made to call a method that does not exist. The attempt was made from the following location:com.alibaba.cloud.context.AliCloudSdk.<init>(AliCloudSdk.java:76)The following method did not exist:com.aliyuncs.profile.DefaultProfile.getHttpClientConfig()Lcom/aliyuncs/http/HttpClientConfig;The method's class, com.aliyuncs.profile.DefaultProfile, is available from the following locations:jar:file:/D:/Tools/maven/com/aliyun/aliyun-java-sdk-core/3.4.0/aliyun-java-sdk-core-3.4.0.jar!/com/aliyuncs/profile/DefaultProfile.classThe class hierarchy was loaded from the following locations:com.aliyuncs.profile.DefaultProfile: file:/D:/Tools/maven/com/aliyun/aliyun-java-sdk-core/3.4.0/aliyun-java-sdk-core-3.4.0.jarAction:Correct the classpath of your application so that it contains a single, compatible version of com.aliyuncs.profile.DefaultProfile

视频的oss.yml配置已经不再适用,请参考阿里的示例代码配置配置跨域后生效需要一点时间

如果觉得《Alibaba Cloud OSS 阿里云对象存储 新版》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。