OSS使用

# OSS使用

# 使用方式

# 1、引入坐标

  <dependency>
    <groupId>cn.lovecyy</groupId>
    <artifactId>relaxed-spring-boot-starter-s3</artifactId>
    <version>${version}</version>
</dependency>

# 2、application.yml

此处以COS为列 ,其余对象存储 只需要修改endpoint 和region即可.

relaxed:
  oss:
    bucket: bucket
    accessKey:
    accessSecret:
    endpoint: https://cos.ap-shanghai.myqcloud.com
    pathStyleAccess: false
    region: ap-shanghai

# 3、上传操作

	String relativePath = "tx/test3.jpg";
		FileInputStream fileInputStream = new FileInputStream(
				ResourceUtils.getFile(ResourceUtils.CLASSPATH_URL_PREFIX + TEST_OBJECT_NAME));
		StreamMeta streamMeta = StreamMeta.convertToByteStreamMeta(fileInputStream);
		String downloadUrl = ossClient.upload(streamMeta.getInputStream(), streamMeta.getSize(), relativePath);
		log.info("上传结果:{}", downloadUrl);
		Assert.state(ossClient.getDownloadUrl(relativePath).equals(downloadUrl), "下载地址不一致");

# 4、复制操作

	@SneakyThrows
	@Test
	void txCopy() {
		String sourcePath = "tx/test3.jpg";
		String destPath = "tx/test4.jpg";
		String copyDownloadUrl = ossClient.copy(sourcePath, destPath);
		// String copyDownloadUrl = ossClient.copy("test", "img/test3.jpg",
		// destBucketName, destPath);
		Assert.state(ossClient.getDownloadUrl(destPath).equals(copyDownloadUrl), "Copy下载地址不一致");
		log.info("copy结果:{}", copyDownloadUrl);
	}

# 5、删除操作

	@SneakyThrows
	@Test
	void txDelete() {
		// 单条删除
		// String relativePath = "tx/test4.jpg";
		// ossClient.delete(relativePath);

		// 批量删除
		Set<String> paths = new HashSet<>();
		paths.add("tx/test3.jpg");
		paths.add("tx/test4.jpg");
		ossClient.batchDelete(paths);
	}

# 6、下载操作

	@Autowired
private OssClient ossClient;

@Test
public void transferDir() throws IOException {
        String relativePath = "test/test.txt";
        byte[] result = ossClient.download(relativePath);
        }