|
26 | 26 | import java.util.List;
|
27 | 27 | import java.util.Stack;
|
28 | 28 | import javax.ws.rs.core.Response;
|
| 29 | +import java.util.Map; |
| 30 | +import java.util.HashMap; |
29 | 31 |
|
30 | 32 | import io.minio.CopyObjectArgs;
|
31 | 33 | import io.minio.CopySource;
|
|
43 | 45 |
|
44 | 46 | public class Client {
|
45 | 47 | public MinioClient minioClient;
|
| 48 | + public static Map<String,MinioClient> minioClientFactory = new HashMap<String, MinioClient>(); |
| 49 | + public static Map<String,Client> clientFactory = new HashMap<String, Client>(); |
| 50 | + |
| 51 | + public static Client getClient(String endpoint) { |
| 52 | + Client client = clientFactory.get(endpoint); |
| 53 | + Map<String,Client> clientLocalFactory = clientFactory; |
| 54 | + |
| 55 | + if (client == null) { |
| 56 | + synchronized(Client.class) { |
| 57 | + if (client == null) { |
| 58 | + client = new Client(endpoint); |
| 59 | + clientLocalFactory.put(endpoint, client); |
| 60 | + clientFactory = clientLocalFactory; |
| 61 | + } |
| 62 | + } |
| 63 | + } |
| 64 | + return client; |
| 65 | + } |
46 | 66 |
|
47 |
| - public Client() { |
48 |
| - minioClient = MinioClient.builder() |
49 |
| - .endpoint(S3Constants.ENDPOINT) |
50 |
| - .credentials(S3Constants.ACCESSKEY, S3Constants.SECRETKEY) |
51 |
| - .build(); |
| 67 | + public static Client getInstance() { |
| 68 | + return getClient(S3Constants.ENDPOINT); |
| 69 | + } |
| 70 | + |
| 71 | + public static Client getInstance(String endpoint) { |
| 72 | + return getClient(endpoint); |
52 | 73 | }
|
53 | 74 |
|
54 |
| - public Client(String endpoint) { |
| 75 | + private Client(String endpoint) { |
55 | 76 | minioClient = MinioClient.builder()
|
56 |
| - .endpoint(endpoint) |
57 |
| - .credentials(S3Constants.ACCESSKEY, S3Constants.SECRETKEY) |
58 |
| - .build(); |
| 77 | + .endpoint(endpoint) |
| 78 | + .credentials(S3Constants.ACCESSKEY, S3Constants.SECRETKEY) |
| 79 | + .build(); |
59 | 80 | }
|
60 | 81 |
|
61 | 82 | /**
|
|
0 commit comments