Search in sources :

Example 1 with MantaException

use of com.joyent.manta.exception.MantaException in project cyberduck by iterate-ch.

the class MantaReadFeature method read.

@Override
public InputStream read(final Path file, final TransferStatus status, final ConnectionCallback connectionCallback) throws BackgroundException {
    final MantaHttpHeaders headers = new MantaHttpHeaders();
    try {
        try {
            if (status.isAppend()) {
                final HttpRange range = HttpRange.withStatus(status);
                headers.setByteRange(range.getStart(), range.getEnd() < 0 ? null : range.getEnd());
            }
            // see https://github.com/joyent/java-manta/issues/248
            return session.getClient().getAsInputStream(file.getAbsolute(), headers);
        } catch (UnsupportedOperationException e) {
            final MantaObject probablyEmptyFile = session.getClient().head(file.getAbsolute());
            if (probablyEmptyFile.getContentLength() != 0) {
                throw new AccessDeniedException();
            }
            return new NullInputStream(0L);
        }
    } catch (MantaException e) {
        throw new MantaExceptionMappingService().map("Download {0} failed", e, file);
    } catch (MantaClientHttpResponseException e) {
        throw new MantaHttpExceptionMappingService().map("Download {0} failed", e, file);
    } catch (IOException e) {
        throw new DefaultIOExceptionMappingService().map("Download {0} failed", e, file);
    }
}
Also used : AccessDeniedException(ch.cyberduck.core.exception.AccessDeniedException) MantaObject(com.joyent.manta.client.MantaObject) MantaHttpHeaders(com.joyent.manta.http.MantaHttpHeaders) IOException(java.io.IOException) DefaultIOExceptionMappingService(ch.cyberduck.core.DefaultIOExceptionMappingService) MantaClientHttpResponseException(com.joyent.manta.exception.MantaClientHttpResponseException) MantaException(com.joyent.manta.exception.MantaException) HttpRange(ch.cyberduck.core.http.HttpRange) NullInputStream(org.apache.commons.io.input.NullInputStream)

Example 2 with MantaException

use of com.joyent.manta.exception.MantaException in project cyberduck by iterate-ch.

the class MantaSession method login.

@Override
public void login(final Proxy proxy, final LoginCallback prompt, final CancelCallback cancel) throws BackgroundException {
    try {
        config.setMantaUser(host.getCredentials().getUsername());
        if (host.getCredentials().isPublicKeyAuthentication()) {
            config.setMantaKeyId(new MantaPublicKeyAuthentication(this).authenticate(host, prompt, cancel));
        }
        if (host.getCredentials().isPasswordAuthentication()) {
            config.setPassword(host.getCredentials().getPassword());
        }
        config.setNoAuth(false);
        config.reload();
        // Instantiation of client does not validate credentials. List the home path to test the connection
        client.isDirectoryEmpty(new MantaHomeFinderFeature(host).find().getAbsolute());
    } catch (ConfigurationException e) {
        throw new BackgroundException(e.getRawMessage(), e);
    } catch (MantaException e) {
        throw new MantaExceptionMappingService().map(e);
    } catch (MantaClientHttpResponseException e) {
        throw new MantaHttpExceptionMappingService().map(e);
    } catch (IOException e) {
        throw new DefaultIOExceptionMappingService().map(e);
    }
}
Also used : ConfigurationException(com.joyent.manta.exception.ConfigurationException) IOException(java.io.IOException) DefaultIOExceptionMappingService(ch.cyberduck.core.DefaultIOExceptionMappingService) MantaClientHttpResponseException(com.joyent.manta.exception.MantaClientHttpResponseException) BackgroundException(ch.cyberduck.core.exception.BackgroundException) MantaException(com.joyent.manta.exception.MantaException)

Aggregations

DefaultIOExceptionMappingService (ch.cyberduck.core.DefaultIOExceptionMappingService)2 MantaClientHttpResponseException (com.joyent.manta.exception.MantaClientHttpResponseException)2 MantaException (com.joyent.manta.exception.MantaException)2 IOException (java.io.IOException)2 AccessDeniedException (ch.cyberduck.core.exception.AccessDeniedException)1 BackgroundException (ch.cyberduck.core.exception.BackgroundException)1 HttpRange (ch.cyberduck.core.http.HttpRange)1 MantaObject (com.joyent.manta.client.MantaObject)1 ConfigurationException (com.joyent.manta.exception.ConfigurationException)1 MantaHttpHeaders (com.joyent.manta.http.MantaHttpHeaders)1 NullInputStream (org.apache.commons.io.input.NullInputStream)1