云存储开通并使用以及测试
1、支付宝扫码登陆阿里云官网;
官网地址:https://account.aliyun.com/login/login.htm
点击产品,选择对象存储
进去之后,点击立即开通
如果已经开通过,会这样提示(那你直接点击控制台就可以)
如果是首次使用阿里云网站,那么需要绑定手机号等一些个人信息,可能还需要实名认证,之后再点击立即开通,就可以了
因为我已经开通过,而且已经创建过一个Bucket,所以界面是这样的
下面演示新建一个Bucket;(Bucket是存储空间,推荐一个项目一个Bucket)
点击Bucket列表,再点击创建Bucket;
建议按照我这样选择(地域就近选择就好),如果你很有钱,当我没说;
点击确定
点击以后再说
这就是刚才创建的一个Bucket
2、在oss里测试文件上传;
点击左侧文件管理,点击文件上传
点击扫描文件(选择一个文件)
文件就会显示在下方
点击上传文件,右侧显示任务列表,提示上传成功
再次点击文件管理,会显示你刚才上传的文件
点击右侧的详情,有一个url地址
复制到浏览器直接打开,然后左下角就会自动下载了
3、原生java-sdk测试上传文件到oss
- 导入maven依赖
<dependency>
<groupId>com.aliyun.oss</groupId>
<artifactId>aliyun-sdk-oss</artifactId>
<version>3.5.0</version>
</dependency>
- 示例代码
@Test
public void test() throws FileNotFoundException {
String endPoint = "xxx";
String accessKeyId = "xxxx";
String accessKeySecret = "xxx";
OSS ossClient = new OSSClientBuilder().build(endPoint, accessKeyId, accessKeySecret);
InputStream inputStream = new FileInputStream("D:\\xxx\\1.jpg");
ossClient.putObject("gulimall-kaka","xxx.jpg",inputStream);
ossClient.shutdown();
System.out.println("上传完成。");
}
参数解释:
endPoint是访问域名:(刚才创建Bucket的时候,会有显示,找到自己的地址)
accessKeyId和accessKeySecret:
因为直接输入支付宝账号密码不靠谱,所以阿里云用了一个子账号来登录,会生成这两个字段;鼠标移到右上角头像上,点击AccessKey管理
点击开始使用子账户AssessKey管理(如果是第一次访问,需要先开通RAM访问控制,按照提示来即可)
点击创建用户
输入登录名称,显示名称以及勾上编程访问,会收到一个手机验证码验证,输入即可。
点击确定,然后就可以看到这两个字段了,放到代码里即可
new FileInputStream(""):参数是自己本地文件的地址;
putObject(三个参数):第一个参数是刚才创建的hello-wtf,第二个参数是自定义一个名字;
不过现在阿里云上文件上传的sdk已经不是这个版本了,参考文档即可 https://help.aliyun.com/document_detail/32009.html
4、用springcloudalibaba-oss实现对象存储
引入依赖(2.1.0.RELEASE版本)
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alicloud-oss</artifactId>
</dependency>
/////////////////////////////////////////////
这里引入依赖有个恶心的问题:
刚开始怎么都导入不了,因为现在官网 https://github.com/alibaba/aliyun-spring-boot/tree/master/aliyun-spring-boot-samples/aliyun-oss-spring-boot-sample ,已经不是这么写了;用官网最新的话,怎么都引入不了,
你还得修改springboot和springcloud的版本;所以我用了我项目中用的2.1.0.RELEASE版本,但是需要修改settings的镜像mirror属性,这样就可以引入了。
,
现在最新的依赖是这样的,artifactId都变了
/////////////////////////////////////////////
在application.yml中引入配置信息(都是刚才RAM权限控制里生成的)
spring:
cloud:
alicloud:
access-key: xxx
secret-key: xxx
oss:
endpoint: xxx
直接测试:(这里用@Autowired会爆红,但是不影响使用,强迫症可以使用@Resource)
@Autowired
OSSClient ossClient;
@Test
public void test1() throws FileNotFoundException {
InputStream inputStream = new FileInputStream("E:\\wallpapercache\\img\\465f19833579e9332a130328bf2015b0.jpg");
ossClient.putObject("gulimall-kaka","kaka_01.jpg",inputStream);
ossClient.shutdown();
System.out.println("上传完成。");
}
查看oss管理控制台:(刚才的文件都已经上传,而且复制url在浏览器中,图片自动下载,打开确认完好。)