public String getUrl() {
        StringBuilder builder = new StringBuilder();
        builder.append(UrlUtil.encodePathSegment(type.group()))
                .append(PATH_SEPARATOR)
                .append(UrlUtil.encodePathSegment(bucketName))
                .append(PATH_SEPARATOR);

        if (!parentFolders.isEmpty()) {
            String parentPath = parentFolders.stream()
                    .map(UrlUtil::encodePathSegment)
                    .collect(Collectors.joining(PATH_SEPARATOR));
            builder.append(parentPath)
                    .append(PATH_SEPARATOR);
        }

        if (name != null) {
            builder.append(UrlUtil.encodePathSegment(name));

            if (isFolder) {
                builder.append(PATH_SEPARATOR);
            }
        }

        return builder.toString();
    }
Returns percent encoded url to the resource with encrypted path to the bucket.
storage/src/main/java/com/epam/aidial/core/storage/resource/ResourceDescriptor.java