
nl.tweeenveertig.openstack.Main Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of joss Show documentation
Show all versions of joss Show documentation
Java Client library for OpenStack Storage (Swift)
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));
}
}
}