Search in sources :

Example 1 with ListObjectsArgs

use of io.minio.ListObjectsArgs in project fess by codelibs.

the class AdminStorageAction method getFileItems.

public static List<Map<String, Object>> getFileItems(final String prefix) {
    final FessConfig fessConfig = ComponentUtil.getFessConfig();
    final ArrayList<Map<String, Object>> list = new ArrayList<>();
    try {
        final MinioClient minioClient = createClient(fessConfig);
        final ListObjectsArgs args = ListObjectsArgs.builder().bucket(fessConfig.getStorageBucket()).prefix(prefix != null && prefix.length() > 0 ? prefix + "/" : prefix).recursive(false).includeUserMetadata(false).useApiVersion1(false).build();
        for (final Result<Item> result : minioClient.listObjects(args)) {
            final Map<String, Object> map = new HashMap<>();
            final Item item = result.get();
            final String objectName = item.objectName();
            map.put("id", encodeId(objectName));
            map.put("name", getName(objectName));
            map.put("hashCode", item.hashCode());
            map.put("size", item.size());
            map.put("directory", item.isDir());
            if (!item.isDir()) {
                map.put("lastModified", item.lastModified());
            }
            list.add(map);
            if (list.size() > fessConfig.getStorageMaxItemsInPageAsInteger()) {
                break;
            }
        }
    } catch (final ErrorResponseException e) {
        final String code = e.errorResponse().code();
        if ("NoSuchBucket".equals(code)) {
            final MinioClient minioClient = createClient(fessConfig);
            try {
                final MakeBucketArgs args = MakeBucketArgs.builder().bucket(fessConfig.getStorageBucket()).build();
                minioClient.makeBucket(args);
                logger.info("Created bucket: {}", fessConfig.getStorageBucket());
            } catch (final Exception e1) {
                logger.warn("Failed to create bucket: {}", fessConfig.getStorageBucket(), e1);
            }
        } else if (logger.isDebugEnabled()) {
            logger.debug("Failed to access {}", fessConfig.getStorageEndpoint(), e);
        }
    } catch (final Exception e) {
        if (logger.isDebugEnabled()) {
            logger.debug("Failed to access {}", fessConfig.getStorageEndpoint(), e);
        }
    }
    return list;
}
Also used : MakeBucketArgs(io.minio.MakeBucketArgs) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) FessConfig(org.codelibs.fess.mylasta.direction.FessConfig) StorageException(org.codelibs.fess.exception.StorageException) ErrorResponseException(io.minio.errors.ErrorResponseException) ListObjectsArgs(io.minio.ListObjectsArgs) Item(io.minio.messages.Item) MinioClient(io.minio.MinioClient) ErrorResponseException(io.minio.errors.ErrorResponseException) HashMap(java.util.HashMap) Map(java.util.Map)

Aggregations

ListObjectsArgs (io.minio.ListObjectsArgs)1 MakeBucketArgs (io.minio.MakeBucketArgs)1 MinioClient (io.minio.MinioClient)1 ErrorResponseException (io.minio.errors.ErrorResponseException)1 Item (io.minio.messages.Item)1 ArrayList (java.util.ArrayList)1 HashMap (java.util.HashMap)1 Map (java.util.Map)1 StorageException (org.codelibs.fess.exception.StorageException)1 FessConfig (org.codelibs.fess.mylasta.direction.FessConfig)1