当前位置: 首页 > news >正文

做日本民宿的网站抖音账号权重查询

做日本民宿的网站,抖音账号权重查询,h5网页制作app,网站建设策划书是有谁编写的MinIOMinio是GlusterFS创始人之一Anand Babu Periasamy发布的开源项目。可以做为云存储的解决方案用来保存海量的图片,视频,文档。由于采用Golang实现,服务端可以工作在Windows,Linux, OS X和FreeBSD上。配置简单,基本是复制可执行…

MinIO

Minio是GlusterFS创始人之一Anand Babu Periasamy发布的开源项目。可以做为云存储的解决方案用来保存海量的图片,视频,文档。由于采用Golang实现,服务端可以工作在Windows,Linux, OS X和FreeBSD上。配置简单,基本是复制可执行程序,单行命令可以运行起来。

安装请参考官方文档

本文存在的原因是官方发布了新版SDK但是文档并没有同步更新,官方文档的SDK示例方法都已删除或过期

MinIO的SDK调用

截至目前最新版的依赖,官方发布时间为2020-9-6

io.minio

minio

7.1.2

package com.minio.service;

import java.io.File;

import java.io.FileInputStream;

import java.io.InputStream;

import io.minio.*;

import io.minio.http.Method;

public class Minio {

/**

* minio参数

*/

private static final String ENDPOINT = "http://127.0.0.1:9000";

private static final String ACCESS_KEY = "******";

private static final String SECRET_KEY = "******";

/**

* 桶占位符

*/

private static final String BUCKET_PARAM = "${bucket}";

/**

* bucket权限-只读

*/

private static final String READ_ONLY = "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":[\"*\"]},\"Action\":[\"s3:GetBucketLocation\",\"s3:ListBucket\"],\"Resource\":[\"arn:aws:s3:::" + BUCKET_PARAM + "\"]},{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":[\"*\"]},\"Action\":[\"s3:GetObject\"],\"Resource\":[\"arn:aws:s3:::" + BUCKET_PARAM + "/*\"]}]}";

/**

* bucket权限-只读

*/

private static final String WRITE_ONLY = "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":[\"*\"]},\"Action\":[\"s3:GetBucketLocation\",\"s3:ListBucketMultipartUploads\"],\"Resource\":[\"arn:aws:s3:::" + BUCKET_PARAM + "\"]},{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":[\"*\"]},\"Action\":[\"s3:AbortMultipartUpload\",\"s3:DeleteObject\",\"s3:ListMultipartUploadParts\",\"s3:PutObject\"],\"Resource\":[\"arn:aws:s3:::" + BUCKET_PARAM + "/*\"]}]}";

/**

* bucket权限-读写

*/

private static final String READ_WRITE = "{\"Version\":\"2012-10-17\",\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":[\"*\"]},\"Action\":[\"s3:GetBucketLocation\",\"s3:ListBucket\",\"s3:ListBucketMultipartUploads\"],\"Resource\":[\"arn:aws:s3:::" + BUCKET_PARAM + "\"]},{\"Effect\":\"Allow\",\"Principal\":{\"AWS\":[\"*\"]},\"Action\":[\"s3:DeleteObject\",\"s3:GetObject\",\"s3:ListMultipartUploadParts\",\"s3:PutObject\",\"s3:AbortMultipartUpload\"],\"Resource\":[\"arn:aws:s3:::" + BUCKET_PARAM + "/*\"]}]}";

/**

* 文件url前半段

*

* @param bucket 桶

* @return 前半段

*/

public static String getObjectPrefixUrl(String bucket) {

return String.format("%s/%s/", ENDPOINT, bucket);

}

/**

* 创建桶

*

* @param bucket 桶

*/

public static void makeBucket(String bucket) throws Exception {

MinioClient client = MinioClient.builder().endpoint(ENDPOINT).credentials(ACCESS_KEY, SECRET_KEY).build();

// 判断桶是否存在

boolean isExist = client.bucketExists(BucketExistsArgs.builder().bucket(bucket).build());

if (!isExist) {

// 新建桶

client.makeBucket(MakeBucketArgs.builder().bucket(bucket).build());

}

}

/**

* 更新桶权限策略

*

* @param bucket 桶

* @param policy 权限

*/

public static void setBucketPolicy(String bucket, String policy) throws Exception {

MinioClient client = MinioClient.builder().endpoint(ENDPOINT).credentials(ACCESS_KEY, SECRET_KEY).build();

switch (policy) {

case "read-only":

client.setBucketPolicy(SetBucketPolicyArgs.builder().bucket(bucket).config(READ_ONLY.replace(BUCKET_PARAM, bucket)).build());

break;

case "write-only":

client.setBucketPolicy(SetBucketPolicyArgs.builder().bucket(bucket).config(WRITE_ONLY.replace(BUCKET_PARAM, bucket)).build());

break;

case "read-write":

client.setBucketPolicy(SetBucketPolicyArgs.builder().bucket(bucket).config(READ_WRITE.replace(BUCKET_PARAM, bucket)).build());

break;

case "none":

default:

break;

}

}

/**

* 上传本地文件

*

* @param bucket 桶

* @param objectKey 文件key

* @param filePath 文件路径

* @return 文件url

*/

public static String uploadFile(String bucket, String objectKey, String filePath) throws Exception {

MinioClient client = MinioClient.builder().endpoint(ENDPOINT).credentials(ACCESS_KEY, SECRET_KEY).build();

client.uploadObject(UploadObjectArgs.builder().bucket(bucket).object(objectKey).filename(filePath).contentType("image/png").build());

return getObjectPrefixUrl(bucket) + objectKey;

}

/**

* 流式上传文件

*

* @param bucket 桶

* @param objectKey 文件key

* @param inputStream 文件输入流

* @return 文件url

*/

public static String uploadInputStream(String bucket, String objectKey, InputStream inputStream) throws Exception {

MinioClient client = MinioClient.builder().endpoint(ENDPOINT).credentials(ACCESS_KEY, SECRET_KEY).build();

client.putObject(PutObjectArgs.builder().bucket(bucket).object(objectKey).stream(inputStream, inputStream.available(), -1).contentType("image/png").build());

return getObjectPrefixUrl(bucket) + objectKey;

}

/**

* 下载文件

*

* @param bucket 桶

* @param objectKey 文件key

* @return 文件流

*/

public static InputStream download(String bucket, String objectKey) throws Exception {

MinioClient client = MinioClient.builder().endpoint(ENDPOINT).credentials(ACCESS_KEY, SECRET_KEY).build();

return client.getObject(GetObjectArgs.builder().bucket(bucket).object(objectKey).build());

}

/**

* 文件复制

*

* @param sourceBucket 源桶

* @param sourceObjectKey 源文件key

* @param bucket 桶

* @param objectKey 文件key

* @return 新文件url

*/

public static String copyFile(String sourceBucket, String sourceObjectKey, String bucket, String objectKey) throws Exception {

MinioClient client = MinioClient.builder().endpoint(ENDPOINT).credentials(ACCESS_KEY, SECRET_KEY).build();

CopySource source = CopySource.builder().bucket(sourceBucket).object(sourceObjectKey).build();

client.copyObject(CopyObjectArgs.builder().bucket(bucket).object(objectKey).source(source).build());

return getObjectPrefixUrl(bucket) + objectKey;

}

/**

* 删除文件

*

* @param bucket 桶

* @param objectKey 文件key

*/

public static void deleteFile(String bucket, String objectKey) throws Exception {

MinioClient client = MinioClient.builder().endpoint(ENDPOINT).credentials(ACCESS_KEY, SECRET_KEY).build();

client.removeObject(RemoveObjectArgs.builder().bucket(bucket).object(objectKey).build());

}

/**

* 获取文件签名url

*

* @param bucket 桶

* @param objectKey 文件key

* @param expires 签名有效时间 单位秒

* @return 文件签名地址

*/

public static String getSignedUrl(String bucket, String objectKey, int expires) throws Exception {

MinioClient client = MinioClient.builder().endpoint(ENDPOINT).credentials(ACCESS_KEY, SECRET_KEY).build();

return client.getPresignedObjectUrl(GetPresignedObjectUrlArgs.builder().method(Method.GET).bucket(bucket).object(objectKey).expiry(expires).build());

}

public static void main(String[] args) {

String bucket = "public";

String objectKey = "demo/123.png";

try {

// 创建桶

makeBucket(bucket);

// 设置桶读写权限

setBucketPolicy(bucket, "read-write");

// 上传本地文件

String url1 = uploadFile(bucket, objectKey, "D://123.png");

// 输出 http://127.0.0.1:9000/public/demo/123.png

System.out.println(url1);

// 上传文件流

String url2 = uploadInputStream(bucket, objectKey, new FileInputStream(new File("D://123.png")));

// 输出 http://127.0.0.1:9000/public/demo/123.png

System.out.println(url2);

// 下载文件

InputStream inputStream = download(bucket, objectKey);

// 文件复制

String url3 = copyFile(bucket, objectKey, "test", "test/abc.png");

// 输出 http://127.0.0.1:9000/test/test/abc.png

System.out.println(url3);

// 删除文件

deleteFile("test", "test/abc.png");

// 获取文件签名url

String sign = getSignedUrl(bucket, objectKey, 600);

// 该路径可访问文件五分钟

System.out.println(sign);

} catch (Exception e) {

e.printStackTrace();

}

}

}

http://www.lbrq.cn/news/2683405.html

相关文章:

  • 免费建立网站教程如何网络媒体推广
  • 哪些网站容易收录seo是什么姓氏
  • 织梦做的网站被黑了seo排名优化方式方法
  • 网站返回首页怎么做的好看今日新闻热点10条
  • 政府网站设计方案企业网站模板源码
  • 海南海口网站建设网络广告营销的案例
  • 郑州做网站软件百家号查询排名数据查询
  • 临朐县网站建设阿里云域名注册查询
  • 网站建设合伙合同今日足球赛事推荐
  • 网站建设51cto微信公众号的推广
  • 校园网站建设与应用星链友店
  • 西青网站建设百度问答平台入口
  • 合肥哪里有做网站浙江网站建设制作
  • cnd设计网官网重庆网站优化软件
  • 新闻资讯网站模板百度推广一般要多少钱
  • 百度网站开发业务石家庄百度搜索优化
  • 在哪个网站去租地方做收废站seo网络推广是干嘛的
  • 自己的网站到期域名如何续费跨境电商平台哪个最好最可靠
  • 建筑网站大全免费如何推广品牌
  • 重庆产品网站推广百度竞价排名利弊
  • 通州个人做网站苹果cms永久免费建站程序
  • 企事业网站建设网站开发需要的技术
  • wordpress 吐槽插件网站优化排名工具
  • 怎样学习做网站的编程seo长尾关键词优化
  • 某网站做参考文献的书写搜索引擎优化实训报告
  • 如何给自家网站做关键词优化菏泽seo
  • 杭州画廊网站建设苏州seo安严博客
  • 品划网络做营销型网站百度关键词搜索引擎
  • deal 网站要怎么做seo课培训
  • 百度网站收录提交入口保定seo推广外包
  • Git 常用命令速查表
  • Mybatis学习之逆向工程(十)
  • python面向对象设计模式
  • Redis 数据结构及特点
  • 【深度学习新浪潮】遥感图像风格化迁移研究工作介绍
  • [论文阅读] 人工智能 + 软件工程 | 大型语言模型对决传统方法:多语言漏洞修复能力大比拼