@Override public boolean isSupported(final Path workdir, final String name) { return proxy.isSupported(workdir, name); }
@Override public Path mkdir(final Path folder, final String region, final TransferStatus status) throws BackgroundException { return registry.find(session, folder).getFeature(session, Directory.class, proxy).mkdir(folder, region, status); }
@Override public Directory<Reply> withWriter(final Write<Reply> writer) { return proxy.withWriter(writer); }
@Override public boolean isSupported(final Path workdir, final String name) { return proxy.isSupported(workdir, name); }
public CryptoDirectoryFeature(final Session<?> session, final Directory<Reply> delegate, final Write<Reply> writer, final CryptoVault cryptomator) { this.session = session; this.proxy = delegate.withWriter(new CryptoWriteFeature<Reply>(session, writer, cryptomator)); this.vault = cryptomator; }
@Override public Path transfer(final Session<?> session, final Session<?> destination, final Path source, final Local n, final TransferOptions options, final TransferStatus status, final ConnectionCallback connectionCallback, final PasswordCallback passwordCallback, final ProgressListener listener, final StreamListener streamListener) throws BackgroundException { if(log.isDebugEnabled()) { log.debug(String.format("Transfer file %s with options %s", source, options)); } listener.message(MessageFormat.format(LocaleFactory.localizedString("Copying {0} to {1}", "Status"), source.getName(), mapping.get(source).getName())); if(source.isDirectory()) { if(!status.isExists()) { final Directory feature = destination.getFeature(Directory.class); feature.mkdir(mapping.get(source), null, status); status.setComplete(); } } else { // Transfer final Copy feature = new DefaultCopyFeature(session).withTarget(destination); feature.copy(source, mapping.get(source), status, connectionCallback); this.addTransferred(status.getLength()); } return source; }
controller.getSession().getFeature(Directory.class).isSupported( new UploadTargetFinder(controller.workdir()).find(controller.getSelectedPath()), StringUtils.EMPTY ); return this.isBrowser() && controller.isMounted() && controller.getSession().getVault() != VaultRegistry.DISABLED && null == controller.workdir().attributes().getVault() && controller.getSession().getFeature(Directory.class).isSupported( new UploadTargetFinder(controller.workdir()).find(controller.getSelectedPath()), StringUtils.EMPTY );
if(r.getKey().isDirectory() && !move.isRecursive(r.getKey(), r.getValue())) { result.put(r.getKey(), session.getFeature(Directory.class).mkdir(r.getValue(), r.getKey().attributes().getRegion(), new TransferStatus()));
result.put(r.getKey(), directory.mkdir(r.getValue(), r.getKey().attributes().getRegion(), new TransferStatus()));
@Override public Path run(final Session<?> session) throws BackgroundException { final Directory feature = session.getFeature(Directory.class); final TransferStatus status = new TransferStatus(); final Encryption encryption = session.getFeature(Encryption.class); if(encryption != null) { status.setEncryption(encryption.getDefault(folder)); } final Redundancy redundancy = session.getFeature(Redundancy.class); if(redundancy != null) { status.setStorageClass(redundancy.getDefault()); } status.setTimestamp(System.currentTimeMillis()); final UnixPermission permission = session.getFeature(UnixPermission.class); if(permission != null) { status.setPermission(permission.getDefault(EnumSet.of(Path.Type.directory))); } return feature.mkdir(folder, region, status); }
file.getName())); final Directory feature = source.getFeature(Directory.class); final Path result = feature.mkdir(file, null, status); status.setComplete(); return result;
status.setStorageClass(redundancy.getDefault()); final Path vault = directory.mkdir(home, region, status); new ContentWriter(session).write(masterkey, masterKeyFileContent.serialize()); this.open(KeyFile.parse(masterKeyFileContent.serialize()), passphrase); log.debug(String.format("Create vault root directory at %s", secondLevel)); directory.mkdir(dataDir, region, new TransferStatus()); directory.mkdir(firstLevel, region, new TransferStatus()); directory.mkdir(secondLevel, region, new TransferStatus()); return vault;
@Override public Path mkdir(final Path folder, final String region, final TransferStatus status) throws BackgroundException { final String directoryId = random.random(); final Path encrypt = vault.encrypt(session, folder, directoryId, false); // Create metadata file for directory final Path directoryMetadataFile = vault.encrypt(session, folder, true); if(log.isDebugEnabled()) { log.debug(String.format("Write metadata %s for folder %s", directoryMetadataFile, folder)); } new ContentWriter(session).write(directoryMetadataFile, directoryId.getBytes(Charset.forName("UTF-8"))); final Path intermediate = encrypt.getParent(); if(!session._getFeature(Find.class).find(intermediate)) { session._getFeature(Directory.class).mkdir(intermediate, region, new TransferStatus()); } // Write header final Cryptor cryptor = vault.getCryptor(); final FileHeader header = cryptor.fileHeaderCryptor().create(); status.setHeader(cryptor.fileHeaderCryptor().encryptHeader(header)); status.setNonces(new RandomNonceGenerator()); final Path target = proxy.mkdir(encrypt, region, status); // Implementation may return new copy of attributes without encryption attributes target.attributes().setDirectoryId(directoryId); target.attributes().setDecrypted(encrypt.attributes().getDecrypted()); // Make reference of encrypted path in attributes of decrypted file point to metadata file final Path decrypt = vault.decrypt(session, vault.encrypt(session, target, true)); decrypt.attributes().setVersionId(target.attributes().getVersionId()); return decrypt; }
if(source.getType().contains(Path.Type.placeholder)) { copy = session.getFeature(Directory.class).mkdir(renamed, source.attributes().getRegion(), new TransferStatus());