public static ResourceDescriptor fromDecoded(ResourceType type, String bucketName, String bucketLocation, String path) {
        // in case empty path - treat it as a home folder
        path = StringUtils.isBlank(path) ? ResourceDescriptor.PATH_SEPARATOR : path;
        verify(bucketLocation.endsWith(ResourceDescriptor.PATH_SEPARATOR), "Bucket location must end with /");

        List<String> elements = Arrays.asList(path.split(ResourceDescriptor.PATH_SEPARATOR));
        return from(type, bucketName, bucketLocation, elements, ResourceUtil.isFolder(path));
    }
@param type           resource type
@param bucketName     bucket name (encrypted)
@param bucketLocation bucket location on blob storage; bucket location must end with /
@param path           url decoded relative path; if url path is null or empty we treat it as user home
server/src/main/java/com/epam/aidial/core/server/util/ResourceDescriptorFactory.java