-----minio为轻量的文件存储服务一键客户端,功能基本和阿里云的OSS一样一键客户端,部署和使用简单快速一键客户端,以下为单节点部署方案一键客户端:
https://www.toutiao.com/i7007346238865670667/ 可以直接看我前一个帖子
客户端源码一键客户端:https://gitee.com/hehebendarenbuxiang/minio-83-client-springboot.git
可以直接启动。
最新版的好多人写的乱七八糟,我整合了一下。
以下为,为了凑字粘贴的部分代码。
/** * 列出所有存储桶 * * @return */ public List<Bucket> listBuckets() throws Exception { return minioClient.listBuckets(); } /** * 删除存储桶 * * @param bucketName 存储桶名称 * @return */ public boolean removeBucket(String bucketName) throws Exception { boolean flag = bucketExists(bucketName); if (flag) { Iterable<Result<Item>> myObjects = listObjects(bucketName); for (Result<Item> result : myObjects) { Item item = result.get(); // 有对象文件,则删除失败 if (item.size() > 0) { return false; } } // 删除存储桶,注意,只有存储桶为空时才能删除成功。 minioClient.removeBucket(RemoveBucketArgs.builder().bucket(bucketName).build()); flag = bucketExists(bucketName); if (!flag) { return true; } } return false; } /** * 列出存储桶中的所有对象名称 * * @param bucketName 存储桶名称 * @return */ public List<String> listObjectNames(String bucketName) throws Exception { List<String> listObjectNames = new ArrayList<>(); boolean flag = bucketExists(bucketName); if (flag) { Iterable<Result<Item>> myObjects = listObjects(bucketName); for (Result<Item> result : myObjects) { Item item = result.get(); listObjectNames.add(item.objectName()); } } return listObjectNames; } /** * 列出存储桶中的所有对象 * * @param bucketName 存储桶名称 * @return */ public Iterable<Result<Item>> listObjects(String bucketName) throws Exception { boolean flag = bucketExists(bucketName); if (flag) { return minioClient.listObjects(ListObjectsArgs.builder().bucket(bucketName).build()); } return null; } /** * 获取年月日[2020, 09, 01] * @return */ protected static String[] getDateFolder() { String[] retVal = new String[3]; LocalDate localDate = LocalDate.now(); retVal[0] = localDate.getYear() + ""; int month = localDate.getMonthValue(); retVal[1] = month < 10 ? "0" + month : month + ""; int day = localDate.getDayOfMonth(); retVal[2] = day < 10 ? "0" + day : day + ""; return retVal; } /** * 上传文件 * * @param bucketName bucket名称 * @param objectName 文件名称 * @param in 文件流 * @throws Exception https://docs.minio.io/cn/java-client-api-reference.html#putObject */ public String putObject(String bucketName, String objectName, InputStream in) throws Exception { ObjectWriteResponse objectWriteResponse = minioClient.putObject(PutObjectArgs.builder() .bucket(bucketName) .object(objectName) .stream(in, in.available(), -1) .build() ); return this.getObjectUrl(bucketName,objectName); } /** * 以流的形式获取一个文件对象 * * @param bucketName 存储桶名称 * @param objectName 存储桶里的对象名称 * @return */ public InputStream getObject(String bucketName, String objectName) throws Exception { boolean flag = bucketExists(bucketName); if (flag) { StatObjectResponse statObject = statObject(bucketName, objectName); if (statObject != null && statObject.size() > 0) { InputStream stream = minioClient.getObject(GetObjectArgs.builder() .bucket(bucketName) .object(objectName) .build()); return stream; } } return null; } /** * 以流的形式获取一个文件对象(断点下载) * * @param bucketName 存储桶名称 * @param objectName 存储桶里的对象名称 * @param offset 起始字节的位置 * @param length 要读取的长度 (可选,如果无值则代表读到文件结尾) * @return */ public InputStream getObject(String bucketName, String objectName, long offset, Long length) throws Exception { boolean flag = bucketExists(bucketName); if (flag) { StatObjectResponse statObject = statObject(bucketName, objectName); if (statObject != null && statObject.size() > 0) { InputStream stream = minioClient.getObject(GetObjectArgs.builder() .bucket(bucketName) .object(objectName) .offset(offset) .length(length) .build()); return stream; } } return null; } /** * 下载并将文件保存到本地 * * @param bucketName 存储桶名称 * @param objectName 存储桶里的对象名称// * @param fileName File name * @return */标签: 一键客户端
文章来源:
亚星管理平台
版权声明:凡本站注明内容来源:“菲律宾亚星公司”的所有作品,版权均属于“菲律宾亚星国际登录”,转载请必须注明中“菲律宾亚星开户”。违反者本网将追究相关法律责任。