All Downloads are FREE. Search and download functionalities are using the official Maven repository.

nl.tweeenveertig.openstack.Main Maven / Gradle / Ivy

There is a newer version: 0.7.0
Show newest version
package nl.tweeenveertig.openstack;

import nl.tweeenveertig.openstack.model.Account;
import nl.tweeenveertig.openstack.model.Container;
import nl.tweeenveertig.openstack.model.StoredObject;
import nl.tweeenveertig.openstack.client.impl.ClientImpl;

import java.io.*;
import java.util.Collection;
import java.util.Map;

public class Main {
    public static void main(String args[]) throws IOException, InterruptedException {

        if (args.length != 4) {
            System.out.println("Use syntax:    ");
            return;
        }
//        String tenant = args[0];
//        String username = args[1];
//        String password = args[2];
//        String url = args[3];

        // Test
        String username = "huurbem-test@42.nl";
        String password = "zuviagFoveG2";
        String tenant = "BFO000042-test";
        // Acceptatie
//        String tenant = "BFO000042-ACCEPTATIE";
//        String username = "huurbem-acceptatie@42.nl";
//        String password = "wn4x6xnGvv56";

        String url = "https://os.cloudvps.com/v2.0/tokens";
        System.out.println("Executing with tenant "+tenant+" and usr/pwd "+username+"/"+password+"@"+url);
        Account account = new ClientImpl().authenticate(tenant, username, password, url, "AMS-1");
        System.out.println(account.getPublicURL());

        account.reload();

//        Collection containers = account.listContainers();
//        long counter = 0;
//        for (Container container : containers) {
////            if (container.getName().equals("K01")) {
//                System.out.println(container.getName());
//                for (StoredObject object : container.listObjects()) {
//                    System.out.println("- "+object.getPublicURL());
//                    counter++;
////                }
//            }
//        }


//        Container container = account.getContainer("images");

//        StoredObject largeObject = container.getObject("segmented-dog.png");
//        printObjectMetadata(largeObject);

//        UploadInstructions instructions =
//                new UploadInstructions(new File("/Users/robertbor/Downloads/dog.png"))
//                    .setContentType("image/jpeg");
//        largeObject.uploadObject(instructions);

//        for (StoredObject object : container.listObjects()) {
//            System.out.println(object.getName());
//        }

//        Account account = new ClientMock().setAllowEveryone(true).authenticate(tenant, username, password, url, "AMS-1");

//        Container container = account.getContainer("segments");
//        container.create();
//        byte[] bytes = "This is the text that will be saved in the cloud".getBytes();
//        StoredObject uploadObject = container.getObject("test2.txt");
//        uploadObject.uploadObject(new UploadInstructions(bytes).setSegmentationSize(10L));
//
//        Collection storedObjects = container.listObjects();
//        for (StoredObject object : storedObjects) {
//            System.out.println(object.getName());
//            System.out.println("  -> type: "+object.getContentType()+", length: "+object.getContentLength());
//            System.out.println("  "+object.getPublicURL());
//        }

//        StoredObject uploadObject = container.getObject("test2.txt");
//        byte[] result = uploadObject.downloadObject();
//        for (byte readByte : result) {
//            System.out.print((char)readByte);
//        }

//        Collection containers = account.listContainers();
//        for (Container container : containers) {
//            System.out.println(container.getName());
//        }
//        Container container = account.getContainer("private-K01");
//        System.out.println("PUBLIC: "+container.isPublic());
//        Collection storedObjects = container.listObjects();
//        for (StoredObject object : storedObjects) {
//            System.out.println(object.getName());
//            System.out.println("  -> type: "+object.getContentType()+", length: "+object.getContentLength());
//            System.out.println("  "+object.getPublicURL());
//        }

//        StoredObject segment1 = container.getObjectSegment("big-file.png", 1);
//        segment1.uploadObject(new byte[] { 'A', 'B', 'C' });
//        StoredObject segment2 = container.getObjectSegment("big-file.png", 2);
//        segment2.uploadObject(new byte[] { 'D', 'E', 'F' });
//        StoredObject segment3 = container.getObjectSegment("big-file.png", 3);
//        segment3.uploadObject(new byte[] { 'G', 'H', 'I' });
//        StoredObject manifest = container.getObject("big-file.png");
//        manifest.uploadObject(new UploadInstructions(new byte[] {}).setObjectManifest(new ObjectManifest(manifest.getPath())));

//        byte[] result = manifest.downloadObject();
//        System.out.print("[");
//        for (byte currentByte : result) {
//            System.out.print((char)currentByte);
//        }
//        System.out.print("]");

//        Account account = new ClientMock().setAllowEveryone(true).authenticate(tenant, username, password, url, "AMS-1");
//        Account account = new ClientImpl().authenticate(tenant, username, password, url, "AMS-1");
//        Container container = account.getContainer("images");
//        StoredObject object = container.getObject("joss-logo.png");
//        object.uploadObject(new UploadInstructions(new File("/Users/robertbor/Downloads/logo.png")).setDeleteAfter(new DeleteAfter(1000)));
//
//        System.out.println("Before X-Delete-At");
//        printObjectMetadata(object);
//
//        object.setDeleteAt(new Date(new Date().getTime()+1000));
//
//        Thread.sleep(12000);
//
//        StoredObject object2 = container.getObject("joss-logo.png");
//        System.out.println("After X-Delete-At");
//        printObjectMetadata(object2);

//        Container container = account.getContainer("images");
//        StoredObject object = container.getObject("dog.png");
//        byte[] bytes = object.downloadObject(new DownloadInstructions().setRange(new FirstPartRange(8)));
//        System.out.println("Number of bytes: "+bytes.length);

//        System.out.println("Bytes used:      "+account.getBytesUsed());
//        System.out.println("Container count: "+account.getContainerCount());
//        System.out.println("Object count:    "+account.getObjectCount());

//        Container container = account.getContainer("images");
//        StoredObject object = container.getObject("dog.png");
//        object.setContentType("image/png");

//        Map metadata = new TreeMap();
//        metadata.put("title", "Some Title");
//        metadata.put("department", "Some Department 2");
//        metadata.put("description", "Some Description");
//        object.setMetadata(metadata);
//
//        printObjectMetadata(object);

//        metadata.clear();
//        metadata.put("title", "Some Title");
//        object.setMetadata(metadata);
//
//        printObjectMetadata(object);

//        container.create();
//        container.makePublic();
//
//        Collection containers = account.listContainers();
//        for (Container currentContainer : containers) {
//            System.out.println(currentContainer.getName());
//            Collection objects = currentContainer.listObjects();
//            for (StoredObject object : objects) {
//                System.out.println("- "+object.getName()+", "+object.getContentType()+", "+object.getContentLength()+"bytes");
//            }
//        }

//        StoredObject object = container.getObject("dog.png");
//        object.uploadObject(new File("/dog.png"));
//        System.out.println("Public URL: "+object.getPublicURL());

//        System.out.println("Last modified:  "+object.getLastModified());
//        System.out.println("ETag:           "+object.getEtag());
//        System.out.println("Content type:   "+object.getContentType());
//        System.out.println("Content length: "+object.getContentLength());
//
//        Collection objects = container.listObjects();
//        for (StoredObject currentObject : objects) {
//            System.out.println(currentObject.getName());
//        }

//        object.downloadObject(new File("/Users/robertbor/Downloads/dog2.png"));

//        StoredObject newObject = container.getObject("new-dog.png");
//        object.copyObject(container, newObject);
//        object.delete();
//        System.out.println("Public URL: "+object.getPublicURL()); // no longer retrievable
//        System.out.println("Public URL: "+newObject.getPublicURL()); // the new URL

//        Map metadata = new TreeMap();
//        metadata.put("title", "Some Title");
//        metadata.put("department", "Some Department");
//        object.setMetadata(metadata);
//        container.setMetadata(metadata);
//        object.setMetadata(metadata);

//        metadata = object.getMetadata();
//        for (String name : metadata.keySet()) {
//            System.out.println("META / "+name+": "+metadata.get(name));
//        }

//        ClientMock client = new ClientMock();
//        MockUserStore users = new MockUserStore();
//        users.addUser("testuser", "testpassword");
//        client.setUsers(users);
//
//        Account account = client.authenticate("tenant", "testuser", "testpassword", null);
//        Container container = account.getContainer("alpha");
//        container.create();
//        StoredObject object = container.getObject("some-object");
//        object.uploadObject(new UploadInstructions(new byte[] { 0x01, 0x02, 0x03, 0x04, 0x05, 0x06 }));
//        byte[] bytes = object.downloadObject();
//        System.out.println("Number of bytes: "+bytes.length);
    }

    protected static void printObjectMetadata(StoredObject object) {
        System.out.println("Exists?:        "+object.exists());
        System.out.println("Object:         "+object.getName());
        System.out.println("Last modified:  "+object.getLastModified());
        System.out.println("Etag:           "+object.getEtag());
        System.out.println("Content length: "+object.getContentLength());
        System.out.println("Content type:   "+object.getContentType());
        System.out.println("X-Delete-At:    "+object.getDeleteAtAsDate());

        MapretrievedMetadata = object.getMetadata();
        for (String name : retrievedMetadata.keySet()) {
            System.out.println("META / " + name + ": " + retrievedMetadata.get(name));
        }
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy