protected DescriptiveUrl toSignedUrl(final Path file, final int seconds) {
        // Determine expiry time for URL
        final Calendar expiry = Calendar.getInstance(TimeZone.getTimeZone("UTC"));
        expiry.add(Calendar.SECOND, seconds);
        return new PresignedUrl(file, expiry);
    }
@Test
    public void testToSignedUrlVirtualHost() {
        final S3UrlProvider provider = new S3UrlProvider(virtualhost, Collections.emptyMap(), new DisabledPasswordStore() {
            @Override
            public String findLoginPassword(final Host bookmark) {
                return "k";
            }
        });
        final String url = provider.toSignedUrl(new Path("/t", EnumSet.of(Path.Type.file)), 30).getUrl();
        assertTrue(url, url.startsWith(
            "https://test-eu-west-3-cyberduck.s3.amazonaws.com/t?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential="));
    }