| | |
| | | import com.ruoyi.common.utils.StringUtils; |
| | | import com.ruoyi.common.utils.uuid.IdUtils; |
| | | import io.minio.*; |
| | | import io.minio.errors.MinioException; |
| | | import io.minio.http.Method; |
| | | import io.minio.messages.*; |
| | | import lombok.extern.slf4j.Slf4j; |
| | |
| | | |
| | | import java.io.File; |
| | | import java.io.FileInputStream; |
| | | import java.io.IOException; |
| | | import java.io.InputStream; |
| | | import java.security.InvalidKeyException; |
| | | import java.security.NoSuchAlgorithmException; |
| | | import java.util.ArrayList; |
| | | import java.util.Collections; |
| | | import java.util.LinkedList; |
| | |
| | | } |
| | | |
| | | /** |
| | | * 创建桶,并设置桶策略为公共 |
| | | * 创建桶 |
| | | */ |
| | | public static boolean createBucket(String bucket) { |
| | | try { |
| | | if (StringUtils.isEmpty(bucket)) { |
| | | return false; |
| | | } |
| | | /*创建桶*/ |
| | | //创建桶 |
| | | MakeBucketArgs makeBucketArgs = MakeBucketArgs.builder().bucket(bucket).build(); |
| | | minioClient.makeBucket(makeBucketArgs); |
| | | /*设置策略*/ |
| | | setBucketPolicy(bucket);//设置桶策略 |
| | | setBucketNotificationToMqtt(bucket);//设置桶通知到MQTT |
| | | return true; |
| | | } catch (Exception ex) { |
| | | log.error("minio创建桶异常:", ex.getMessage()); |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 设置桶策略 |
| | | * 刘苏义 |
| | | * 2023/9/20 10:01:39 |
| | | */ |
| | | public static boolean setBucketPolicy(String bucket) { |
| | | try { |
| | | //设置策略 |
| | | String sb = "{\"Version\":\"2012-10-17\"," + |
| | | "\"Statement\":[{\"Effect\":\"Allow\",\"Principal\":" + |
| | | "{\"AWS\":[\"*\"]},\"Action\":[\"s3:ListBucket\",\"s3:ListBucketMultipartUploads\"," + |
| | |
| | | .bucket(bucket) |
| | | .config(sb) |
| | | .build(); |
| | | /*设置通知mqtt*/ |
| | | //设置mqtt主题 |
| | | minioClient.setBucketPolicy(setBucketPolicyArgs); |
| | | return true; |
| | | } catch (Exception ex) { |
| | | log.error("设置桶策略异常:" + ex.getMessage()); |
| | | return false; |
| | | } |
| | | } |
| | | |
| | | /** |
| | | * 设置桶通知到MQTT |
| | | * 刘苏义 |
| | | * 2023/9/20 9:59:40 |
| | | */ |
| | | public static boolean setBucketNotificationToMqtt(String bucket) { |
| | | try { |
| | | //设置通知mqtt |
| | | NotificationConfiguration config = new NotificationConfiguration(); |
| | | List<QueueConfiguration> queueConfigurations = new ArrayList<>(); |
| | | QueueConfiguration queueConfiguration = new QueueConfiguration(); |
| | | queueConfiguration.setQueue("arn:minio:sqs::_:mqtt"); |
| | | |
| | | //设置事件 |
| | | List<EventType> events = new ArrayList<>(); |
| | | events.add(EventType.OBJECT_REMOVED_ANY); |
| | | events.add(EventType.OBJECT_CREATED_ANY); |
| | | queueConfiguration.setEvents(events); |
| | | |
| | | queueConfigurations.add(queueConfiguration); |
| | | config.setQueueConfigurationList(queueConfigurations); |
| | | SetBucketNotificationArgs setBucketNotificationArgs = SetBucketNotificationArgs.builder() |
| | | .bucket(bucket) |
| | | .config(config).build(); |
| | | minioClient.setBucketPolicy(setBucketPolicyArgs); |
| | | minioClient.setBucketNotification(setBucketNotificationArgs); |
| | | |
| | | return true; |
| | | } catch (Exception ex) { |
| | | log.error("minio创建桶异常:", ex.getMessage()); |
| | | log.error("设置桶通知异常:" + ex.getMessage()); |
| | | return false; |
| | | } |
| | | } |