2025年4月21日16:47:17

master
qmstyle 2025-04-21 16:47:23 +08:00
parent 9699a6f811
commit a345943568
5 changed files with 104 additions and 51 deletions

BIN
imges/img.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

BIN
imges/img_1.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

BIN
imges/img_2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 MiB

14
readme.md Normal file
View File

@ -0,0 +1,14 @@
> 一个简单的minio的客户端
![](imges/img.png)
### 1.功能
- 创建bucket
- 上传文件
![](imges/img_1.png)
- url预览
![](imges/img_2.png)

View File

@ -21,6 +21,11 @@ import javafx.scene.layout.AnchorPane;
import javafx.stage.FileChooser; import javafx.stage.FileChooser;
import javafx.stage.Stage; import javafx.stage.Stage;
import java.awt.Toolkit;
import java.awt.datatransfer.Clipboard;
import java.awt.datatransfer.StringSelection;
import java.awt.datatransfer.Transferable;
import java.io.*; import java.io.*;
import java.net.URL; import java.net.URL;
import java.nio.charset.StandardCharsets; import java.nio.charset.StandardCharsets;
@ -111,10 +116,31 @@ public class MinioController {
// 创建上下文菜单 // 创建上下文菜单
final ContextMenu contextMenu = new ContextMenu(); final ContextMenu contextMenu = new ContextMenu();
MenuItem copyUrl = new MenuItem("copy url");
copyUrl.setOnAction(event -> {
BucketFile selectedItem = tableview.getSelectionModel().getSelectedItem();
// 获取系统剪贴板
Clipboard clipboard = Toolkit.getDefaultToolkit().getSystemClipboard();
// 创建一个 StringSelection 对象,该对象封装了要复制的文本
Transferable transferableText = new StringSelection(selectedItem.getUrl());
// 将文本内容设置到剪贴板
clipboard.setContents(transferableText, null);
});
MenuItem menuItem = new MenuItem("删除"); MenuItem menuItem = new MenuItem("删除");
menuItem.setOnAction(event -> { menuItem.setOnAction(event -> {
list.remove(tableview.getSelectionModel().getSelectedItem()); list.remove(tableview.getSelectionModel().getSelectedItem());
// MinioUtils.delete_file();
}); });
contextMenu.getItems().add(copyUrl);
contextMenu.getItems().add(menuItem); contextMenu.getItems().add(menuItem);
// 添加事件监听器来处理上下文菜单的显示 // 添加事件监听器来处理上下文菜单的显示
tableview.setOnContextMenuRequested(event -> { tableview.setOnContextMenuRequested(event -> {
@ -178,6 +204,9 @@ public class MinioController {
KeyCombination kc2 = KeyCombination.valueOf("ctrl+r"); KeyCombination kc2 = KeyCombination.valueOf("ctrl+r");
reload_config.setAccelerator(kc2); reload_config.setAccelerator(kc2);
reload_config.setOnAction(event -> {
load_property();
});
KeyCombination kc3 = KeyCombination.valueOf("ctrl+b"); KeyCombination kc3 = KeyCombination.valueOf("ctrl+b");
bucket_choose.setAccelerator(kc3); bucket_choose.setAccelerator(kc3);
@ -205,6 +234,7 @@ public class MinioController {
} }
MinioUtils.upload_file(upload_file); MinioUtils.upload_file(upload_file);
reload();
}); });
bucket_btn.setOnAction(event -> { bucket_btn.setOnAction(event -> {
@ -228,6 +258,7 @@ public class MinioController {
return; return;
} }
MinioUtils.createBucket(bucket_name.getText()); MinioUtils.createBucket(bucket_name.getText());
load_bucket_list();
}); });
load_property(); load_property();
@ -243,6 +274,7 @@ public class MinioController {
} }
} }
}); });
backet_list.setItems(backet_item_list);
} }
public void save_properties() { public void save_properties() {
@ -299,6 +331,19 @@ public class MinioController {
} }
} }
public void load_bucket_list() {
//刷新bucket列表
//获取所有储存桶
backet_item_list.clear();
List<Bucket> buckets = MinioUtils.getAllBuckets();
if (buckets.size() > 0) {
for (Bucket bucket : buckets) {
backet_item_list.add(bucket.name());
}
}
this.backet_list.getSelectionModel().select(bucket_name.getText());
}
public void load_property() { public void load_property() {
Properties prop = new Properties(); Properties prop = new Properties();
File file = ResourceUtils.getPropertiesFile(); File file = ResourceUtils.getPropertiesFile();
@ -332,14 +377,7 @@ public class MinioController {
} }
} }
//获取所有储存桶 load_bucket_list();
List<Bucket> buckets = MinioUtils.getAllBuckets();
if (buckets.size()>0){
for (Bucket bucket : buckets) {
backet_item_list.add(bucket.name());
}
}
this.backet_list.setItems(backet_item_list);
} }
@FXML @FXML
@ -363,10 +401,11 @@ public class MinioController {
AlertUtils.alert_warning("请选择bucket再试"); AlertUtils.alert_warning("请选择bucket再试");
return; return;
} }
list.clear();
String bucketName = obj.toString(); String bucketName = obj.toString();
List<BucketFile> bucketFiles = MinioUtils.getFileList(bucketName); List<BucketFile> bucketFiles = MinioUtils.getFileList(bucketName);
if (bucketFiles.size() > 0) { if (bucketFiles.size() > 0) {
list.clear();
list.addAll(bucketFiles); list.addAll(bucketFiles);
} }
} }