上一篇文章中 我们已经对 OSS 是什么东西 以及做什么的 都有了一个初步了解,那么接下来我们来了解下基本的代码实现与构建
一 代码的基本实现:
必要参数:java4all_file_endpoint 这个是你所购买的套餐中 OSS 的服务器地址
java4all.file.bucketname1 这个参数就是上篇文章中我们手动创建Bucket 的时候的Bucket的名称
※ 注意 这个名称可能会存在重复名称(与其他公司的库相同名称 所以后续会做处理)
//AccessKey 设置 ※ AccessKey 安全系数较低建议采用RAM账号进行维护
java4all_file_keyid (阿里云控制台获取)
java4all_file_keysecret (阿里云控制台获取)
上边这两个参数 获取详情在下边这个帮助文档里
AccessKey 如何获取 帮助文档地址:https://help.aliyun.com/knowledge_detail/38738.html?spm=5176.10695662.1996646101.searchclickresult.76cb6106o4Zc7h
application.properties 配置文件中添加
#OSS服务器地址 不同的服务器,地址不同--测试期间可以选择 后续需要根据购买的套餐选择
java4all.file.endpoint=oss-cn-beijing.aliyuncs.com
java4all.file.keyid=LTAIt7jrM2xV1UIn
java4all.file.keysecret=suoJgja7sVwJ4Wsq6YLfAc2SXTbjAb
#这个自己创建bucket时的命名,控制台创建也行,代码创建也行 mbtest-fail
java4all.file.bucketname1=mbtest-fail
#文件路径,我这里是blog
java4all.file.filehost=blog
创建一个测试类
import com.aliyun.oss.OSSClient;
import com.anole.demo.demo.DemoApplication;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.test.context.junit4.SpringRunner;
import org.springframework.test.context.web.WebAppConfiguration;
import java.io.ByteArrayInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
/**
* @author:manbu
* @data 2019/6/17- 14:35
* @TODO: OSS 存储 测试类
* @console:
*/
@RunWith(SpringRunner.class)
// 这个注解的类名 取自于你的Springboot 启动类的名称
@SpringBootTest(classes = DemoApplication.class)
@WebAppConfiguration
public class Test {
// 阿里云主账号AccessKey拥有所有API的访问权限,风险很高。强烈建议您创建并使用RAM账号进行API访问或日常运维,请登录 https://ram.console.aliyun.com 创建RAM账号。
@Value("${java4all.file.endpoint}")
String endpoint;
@Value("${java4all.file.keyid}")
String accessKeyId ;
@Value("${java4all.file.keysecret}")
String accessKeySecret;
/*上传字符串*/
@org.junit.Test
public void test() {
// 实例化 OSS 这里传入的参数是 Bucket的名称 以及 连接的密文 类似于数据库的 账号和密码
OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
※ 上传文本信息后 将会生成Text 文件 并将文本信息存放在文件中
// 构建上传的文本信息
String content = "Hello OSS";
// 第一个参数 上传至存储空间 buck 第二个参数 为 上传字符串后生成的文件 需要带格式
// 第一个参数为 建立的或者已存在的Bucket存储空间 名字是什么 第二个参数 上传后的文件名是什么
// 第三个参数为 创建一个字节数组流 然后把文本信息放入流中
// 然后 通过OSS创建的Client连接 把文本推送至OSS服务器
ossClient.putObject("mbtest-fail", "blog.text", new ByteArrayInputStream(content.getBytes()));
//设置权限 这里是公开读 这里对接手动创建的时候 那个公开可读写性 私密可读写性的设置
ossClient.setBucketAcl(bucketName,CannedAccessControlList.Private);
// 关闭OSSClient流。
ossClient.shutdown();
}
// 上传网络流 把某个网址的网页源码上传至服务器
@org.junit.Test
public void testonLine() {
// Endpoint以杭州为例,其它Region请按实际情况填写。
// 创建OSSClient实例。
OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
//new URL("https://www.baidu.com/") 创建一次Url连接 openStream 方法获取连接的资源信息
// openStream 解析文档 https://zhidao.baidu.com/question/286646799.html
InputStream inputStream = new URL("https://www.baidu.com/").openStream();
ossClient.putObject("mbtest-fail", "blog.text", inputStream);
// 关闭OSSClient。
ossClient.shutdown();
}
/*删除存储空间 既 Bucket endpoint*/
@org.junit.Test
public void delete() throws IOException {
// Endpoint以杭州为例,其它Region请按实际情况填写。
// 创建OSSClient实例。
OSSClient ossClient = new OSSClient(endpoint, accessKeyId, accessKeySecret);
// 上传字符串。
// 删除的存储空间的名字
ossClient.deleteBucket("mbtest-fail");
// 关闭OSSClient。
ossClient.shutdown();
}
}