Search in sources :

Example 1 with BlobStoreContextFactory

use of org.jclouds.blobstore.BlobStoreContextFactory in project legacy-jclouds-examples by jclouds.

the class MainApp method upload.

/**
    * @param provider
    * @param identity
    * @param credential
    * @param hdfsUrl
    * @param containerName
    * @param objectName
    * @param plainhttp
    * @param threadcount
    * @throws IOException
    */
private void upload(String provider, String identity, String credential, String hdfsUrl, String containerName, String objectName, boolean plainhttp, String threadcount) throws IOException {
    // Init
    Properties overrides = new Properties();
    if (plainhttp)
        // default is https
        overrides.putAll(PLAIN_HTTP_ENDPOINTS);
    if (threadcount != null)
        // without setting,
        overrides.setProperty("jclouds.mpu.parallel.degree", threadcount);
    // default is 4 threads
    overrides.setProperty(provider + ".identity", identity);
    overrides.setProperty(provider + ".credential", credential);
    BlobStoreContext context = new BlobStoreContextFactory().createContext(provider, HDFS_MODULES, overrides);
    try {
        long start = System.currentTimeMillis();
        Configuration conf = getConf();
        if (conf == null) {
            conf = new Configuration();
            setConf(conf);
        }
        // Create Container
        // it can be changed to sync
        BlobStore blobStore = context.getBlobStore();
        // BlobStore
        blobStore.createContainerInLocation(null, containerName);
        Blob blob = blobStore.blobBuilder(objectName).payload(new HdfsPayload(new Path(hdfsUrl), conf)).contentType(MediaType.APPLICATION_OCTET_STREAM).contentDisposition(objectName).build();
        long length = blob.getPayload().getContentMetadata().getContentLength();
        blobStore.putBlob(containerName, blob, multipart());
        printSpeed("Sucessfully uploaded", start, length);
    } finally {
        // Close connection
        context.close();
    }
}
Also used : Path(org.apache.hadoop.fs.Path) Blob(org.jclouds.blobstore.domain.Blob) BlobStoreContextFactory(org.jclouds.blobstore.BlobStoreContextFactory) Configuration(org.apache.hadoop.conf.Configuration) HdfsPayload(org.jclouds.examples.blobstore.hdfs.io.payloads.HdfsPayload) BlobStoreContext(org.jclouds.blobstore.BlobStoreContext) Properties(java.util.Properties) BlobStore(org.jclouds.blobstore.BlobStore)

Example 2 with BlobStoreContextFactory

use of org.jclouds.blobstore.BlobStoreContextFactory in project legacy-jclouds-examples by jclouds.

the class BlobStoreServiceImpl method write.

public void write(String bucket, String blobName, Object object) {
    context = new BlobStoreContextFactory().createContext(provider, accessKeyId, secretKey);
    if (context != null) {
        BlobStore blobStore = context.getBlobStore();
        Blob blob = blobStore.blobBuilder(blobName).build();
        ByteArrayOutputStream baos = new ByteArrayOutputStream();
        ObjectOutputStream oos = null;
        try {
            oos = new ObjectOutputStream(baos);
            oos.writeObject(object);
            blob.setPayload(baos.toByteArray());
            blobStore.putBlob(bucket, blob);
        } catch (IOException e) {
            logger.error("Error while writing blob", e);
        } finally {
            if (oos != null) {
                try {
                    oos.close();
                } catch (IOException e) {
                }
            }
            if (baos != null) {
                try {
                    baos.close();
                } catch (IOException e) {
                }
            }
        }
    } else
        logger.warn("Blob store context is null.");
}
Also used : Blob(org.jclouds.blobstore.domain.Blob) BlobStoreContextFactory(org.jclouds.blobstore.BlobStoreContextFactory) ByteArrayOutputStream(java.io.ByteArrayOutputStream) IOException(java.io.IOException) ObjectOutputStream(java.io.ObjectOutputStream) BlobStore(org.jclouds.blobstore.BlobStore)

Example 3 with BlobStoreContextFactory

use of org.jclouds.blobstore.BlobStoreContextFactory in project legacy-jclouds-examples by jclouds.

the class BlobStoreServiceImpl method read.

public Object read(String bucket, String blobName) {
    Object result = null;
    ObjectInputStream ois = null;
    context = new BlobStoreContextFactory().createContext(provider, accessKeyId, secretKey);
    if (context != null) {
        BlobStore blobStore = context.getBlobStore();
        blobStore.createContainerInLocation(null, bucket);
        InputStream is = blobStore.getBlob(bucket, blobName).getPayload().getInput();
        try {
            ois = new ObjectInputStream(is);
            result = ois.readObject();
        } catch (IOException e) {
            e.printStackTrace();
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } finally {
            if (ois != null) {
                try {
                    ois.close();
                } catch (IOException e) {
                }
            }
            if (is != null) {
                try {
                    is.close();
                } catch (IOException e) {
                }
            }
        }
    } else
        logger.warn("Blob store context is null.");
    return result;
}
Also used : BlobStoreContextFactory(org.jclouds.blobstore.BlobStoreContextFactory) ObjectInputStream(java.io.ObjectInputStream) InputStream(java.io.InputStream) IOException(java.io.IOException) BlobStore(org.jclouds.blobstore.BlobStore) ObjectInputStream(java.io.ObjectInputStream)

Example 4 with BlobStoreContextFactory

use of org.jclouds.blobstore.BlobStoreContextFactory in project legacy-jclouds-examples by jclouds.

the class MainApp method main.

public static void main(String[] args) throws IOException {
    if (args.length < PARAMETERS)
        throw new IllegalArgumentException(INVALID_SYNTAX);
    // Args
    String provider = args[0];
    if (!Iterables.contains(BlobStoreUtils.getSupportedProviders(), provider))
        throw new IllegalArgumentException("provider " + provider + " not in supported list: " + BlobStoreUtils.getSupportedProviders());
    String identity = args[1];
    String credential = args[2];
    String fileName = args[3];
    String containerName = args[4];
    String objectName = args[5];
    boolean plainhttp = args.length >= 7 && "plainhttp".equals(args[6]);
    String threadcount = args.length >= 8 ? args[7] : null;
    // Init
    Properties overrides = new Properties();
    if (plainhttp)
        // default is https
        overrides.putAll(PLAIN_HTTP_ENDPOINTS);
    if (threadcount != null)
        // without setting,
        overrides.setProperty("jclouds.mpu.parallel.degree", threadcount);
    // default is 4 threads
    overrides.setProperty(provider + ".identity", identity);
    overrides.setProperty(provider + ".credential", credential);
    BlobStoreContext context = new BlobStoreContextFactory().createContext(provider, MODULES, overrides);
    try {
        long start = System.currentTimeMillis();
        // Create Container
        // it can be changed to sync
        AsyncBlobStore blobStore = context.getAsyncBlobStore();
        // BlobStore
        ListenableFuture<Boolean> future = blobStore.createContainerInLocation(null, containerName);
        future.get();
        File input = new File(fileName);
        long length = input.length();
        // Add a Blob
        Blob blob = blobStore.blobBuilder(objectName).payload(input).contentType(MediaType.APPLICATION_OCTET_STREAM).contentDisposition(objectName).build();
        // Upload a file
        ListenableFuture<String> futureETag = blobStore.putBlob(containerName, blob, multipart());
        // asynchronously wait for the upload
        String eTag = futureETag.get();
        printSpeed("Sucessfully uploaded eTag(" + eTag + ")", start, length);
    } catch (InterruptedException e) {
        System.err.println(e.getMessage());
        e.printStackTrace();
    } catch (ExecutionException e) {
        System.err.println(e.getMessage());
        e.printStackTrace();
    } finally {
        // Close connecton
        context.close();
        System.exit(0);
    }
}
Also used : AsyncBlobStore(org.jclouds.blobstore.AsyncBlobStore) Blob(org.jclouds.blobstore.domain.Blob) Properties(java.util.Properties) BlobStoreContextFactory(org.jclouds.blobstore.BlobStoreContextFactory) BlobStoreContext(org.jclouds.blobstore.BlobStoreContext) ExecutionException(java.util.concurrent.ExecutionException) File(java.io.File)

Aggregations

BlobStoreContextFactory (org.jclouds.blobstore.BlobStoreContextFactory)4 BlobStore (org.jclouds.blobstore.BlobStore)3 Blob (org.jclouds.blobstore.domain.Blob)3 IOException (java.io.IOException)2 Properties (java.util.Properties)2 BlobStoreContext (org.jclouds.blobstore.BlobStoreContext)2 ByteArrayOutputStream (java.io.ByteArrayOutputStream)1 File (java.io.File)1 InputStream (java.io.InputStream)1 ObjectInputStream (java.io.ObjectInputStream)1 ObjectOutputStream (java.io.ObjectOutputStream)1 ExecutionException (java.util.concurrent.ExecutionException)1 Configuration (org.apache.hadoop.conf.Configuration)1 Path (org.apache.hadoop.fs.Path)1 AsyncBlobStore (org.jclouds.blobstore.AsyncBlobStore)1 HdfsPayload (org.jclouds.examples.blobstore.hdfs.io.payloads.HdfsPayload)1