@Override
    public DescriptiveUrlBag toUrl(final Path file) {
        final DescriptiveUrlBag list = new DescriptiveUrlBag();
        // In one hour
        list.add(this.toSignedUrl(file, (int) TimeUnit.HOURS.toSeconds(1)));
        // Default signed URL expiring in 24 hours.
        list.add(this.toSignedUrl(file, (int) TimeUnit.SECONDS.toSeconds(
                new HostPreferences(session.getHost()).getInteger("s3.url.expire.seconds"))));
        // 1 Week
        list.add(this.toSignedUrl(file, (int) TimeUnit.DAYS.toSeconds(7)));
        // 1 Month
        list.add(this.toSignedUrl(file, (int) TimeUnit.DAYS.toSeconds(30)));
        // 1 Year
        list.add(this.toSignedUrl(file, (int) TimeUnit.DAYS.toSeconds(365)));
        return list;
    }
@Test
    public void testGet() throws Exception {
        final Path container = new Path("cyberduck", EnumSet.of(Path.Type.directory, Path.Type.volume));
        final Path test = new Path(container, "f g", EnumSet.of(Path.Type.file));
        new AzureTouchFeature(session, null).touch(test, new TransferStatus());
        assertEquals(5, new AzureUrlProvider(session).toUrl(test).filter(DescriptiveUrl.Type.signed).size());
        new AzureDeleteFeature(session, null).delete(Collections.singletonList(test), new DisabledLoginCallback(), new Delete.DisabledCallback());
    }