
Python調用Google Bard API 完整指南
通過訪問終端顯示的地址,您可以打開MinIO的項目頁面,并輸入終端給出的用戶名和密碼進行登錄。
在SpringBoot項目中集成MinIO可以通過添加相應的依賴開始。下面是如何在SpringBoot中配置MinIO客戶端的示例。
io.minio
minio
8.5.9
@Configuration
public class MinIOConfig {
@Bean
public MinioClient minioClient() {
return MinioClient.builder()
.endpoint("http://192.168.202.1:9000")
.credentials("minioadmin", "minioadmin")
.build();
}
}
在不同的系統環境中運行MinIO可能會產生時間誤差,例如開發環境為Windows,而MinIO運行在Linux上。為了避免這種情況,可以同步Linux系統時間。
# 安裝 ntpdate
yum install ntpdate -y
# 同步時間
ntpdate poll.ntp.org
MinIO的存儲結構與傳統的文件系統有些不同,它使用桶(Bucket)來管理數據。
bucketExists
方法。boolean exists = minioClient.bucketExists(BucketExistsArgs.builder().bucket("test").build());
System.out.println("test文件夾是否存在:" + exists);
makeBucket
方法。minioClient.makeBucket(MakeBucketArgs.builder().bucket("test").build());
listBuckets
方法。List buckets = minioClient.listBuckets();
for (Bucket bucket : buckets) {
System.out.println("name: " + bucket.name() + ";creationDate: " + bucket.creationDate());
}
removeBucket
方法。minioClient.removeBucket(RemoveBucketArgs.builder().bucket("test").build());
對象(Object)是MinIO中存儲的基本單位。
putObject
方法。File file = new File("C:\Users\j9967\Downloads\lifecycle-events.png");
FileInputStream stream = new FileInputStream(file);
ObjectWriteResponse response = minioClient.putObject(PutObjectArgs.builder()
.bucket("test")
.object("my-test.jpg")
.stream(stream, file.length(), -1)
.build());
getObject
方法。GetObjectResponse response = minioClient.getObject(GetObjectArgs.builder()
.bucket("public-readonly-file")
.object("my-public.jpg")
.build());
String fileName = response.object();
response.transferTo(new FileOutputStream("E:\code" + fileName));
listObjects
方法。Iterable<Result> results = minioClient.listObjects(ListObjectsArgs.builder()
.bucket("public-readonly-file")
.build());
for (Result result : results) {
Item item = result.get();
System.out.println(item.lastModified() + "t" + item.size() + "t" + item.objectName());
}
removeObject
方法。minioClient.removeObject(RemoveObjectArgs.builder()
.bucket("public-readonly-file")
.object("my-public.jpg")
.build());
默認情況下,MinIO生成的URL需要簽名才能訪問。要實現公開訪問,可以設置桶的訪問策略。
setBucketPolicy
設置為公開讀策略。String bucketName = "public-readonly-file";
minioClient.makeBucket(MakeBucketArgs.builder().bucket(bucketName).build());
String policyJsonString = "{"Version":"2012-10-17","Statement":[{"Sid":"PublicRead","Effect":"Allow","Principal":{"AWS":"*"},"Action":["s3:GetObject"],"Resource":["arn:aws:s3:::" + bucketName + "/*"]}]}";
minioClient.setBucketPolicy(SetBucketPolicyArgs.builder()
.bucket(bucketName)
.config(policyJsonString)
.build());
通過以上設置,您可以直接訪問 public-readonly-file
桶中的文件,而不需要簽名。
以上內容展示了如何使用MinIO的API來進行基本操作。希望通過本文的介紹,您能夠對MinIO有一個更深入的了解,幫助您在項目中更好地集成和使用MinIO。
.minio.exe server E:minio --console-address :9090
這里,E:minio
是項目運行和文件存儲的目錄,--console-address
指定了 MinIO Web 控制臺的運行端口為 9090
。
pom.xml
添加如下依賴:
io.minio
minio
8.5.9
然后,配置MinIO客戶端:
@Configuration
public class MinIOConfig {
@Bean
public MinioClient minioClient() {
return MinioClient.builder()
.endpoint("http://192.168.202.1:9000")
.credentials("minioadmin", "minioadmin")
.build();
}
}
ntpdate
命令來同步時間:
# 安裝 ntpdate
yum install ntpdate -y
# 同步時間
ntpdate poll.ntp.org
bucketExists
方法來判斷桶是否存在。以下是示例代碼:
boolean exists = minioClient.bucketExists(BucketExistsArgs.builder().bucket("test").build());
System.out.println("test文件夾是否存在:" + exists);
setBucketPolicy
方法設置為公開讀策略:
String bucketName = "public-readonly-file";
minioClient.makeBucket(MakeBucketArgs.builder().bucket(bucketName).build());
String policyJsonString = "{"Version":"2012-10-17","Statement":[{"Sid":"PublicRead","Effect":"Allow","Principal":{"AWS":"*"},"Action":["s3:GetObject"],"Resource":["arn:aws:s3:::" + bucketName + "/*"]}]}";
minioClient.setBucketPolicy(SetBucketPolicyArgs.builder()
.bucket(bucketName)
.config(policyJsonString)
.build());
通過以上設置,您可以直接訪問 public-readonly-file
桶中的文件,而不需要簽名。