Package org.jets3t.service.multi

Examples of org.jets3t.service.multi.SimpleThreadedStorageService


        RestStorageService service = getStorageService(getCredentials());
        StorageBucket bucket = createBucketForTest("testSimpleThreadedStorageService");
        String bucketName = bucket.getName();

        try {
            SimpleThreadedStorageService simpleThreadedService =
                new SimpleThreadedStorageService(service);

            StorageObject[] objects = new StorageObject[] {
                new StorageObject("1-one.txt", "Some data"),
                new StorageObject("2-twö.txt", "Some data"),
                new StorageObject("3-thréè.txt", "Some data"),
                new StorageObject("4-fôür.txt", "Some data"),
                new StorageObject("5-fîvæ∫.txt", "Some data")
            };

            // Upload multiple objects
            StorageObject[] putObjects =
                simpleThreadedService.putObjects(bucketName, objects);
            StorageObject[] listedObjects = service.listObjects(bucketName);
            assertEquals(objects.length, listedObjects.length);

            // Retrieve details for multiple objects
            StorageObject[] headObjects = simpleThreadedService.getObjectsHeads(bucketName, objects);
            assertEquals(objects.length, headObjects.length);
            Arrays.sort(headObjects, new Comparator<StorageObject>() {
                public int compare(StorageObject o1, StorageObject o2) {
                    return o1.getKey().compareTo(o2.getKey());
                }
            });
            for (int i = 0; i < objects.length; i++) {
                assertEquals(objects[i].getKey(), headObjects[i].getKey());
                assertEquals("Some data".length(), headObjects[i].getContentLength());
            }

            // Retrieve details for objects, some of which are missing but which we don't
            // want to cause an error.
            class Http404ErrorPermitter extends ErrorPermitter {
                @Override
                public boolean isPermitted(ServiceException ex) {
                    return ex.getResponseCode() == 404;
                }
            }
            // Prepare object keys combining existing and non-existent key names
            String objectKeys[] = new String[objects.length + 2];
            for (int i = 0; i < objects.length; i++) {
                objectKeys[i] = objects[i].getKey();
            }
            objectKeys[objects.length] = "missing-object-key-1";
            objectKeys[objects.length + 1] = "missing-object-key-2";
            StorageObject[] headObjectsWithMissing = simpleThreadedService.getObjectsHeads(
                bucketName, objectKeys, new Http404ErrorPermitter());
            assertEquals(objects.length + 2, headObjectsWithMissing.length);
            for (int i = 0; i < objects.length; i++) {
                assertEquals(objects[i].getKey(), headObjectsWithMissing[i].getKey());
                assertEquals("Some data".length(), headObjectsWithMissing[i].getContentLength());
            }
            // Ensure we got ThrowableBearingStorageObject results with relevant info
            assertEquals("missing-object-key-1", headObjectsWithMissing[objects.length].getKey());
            assertEquals("missing-object-key-2", headObjectsWithMissing[objects.length + 1].getKey());
            for (int i = objects.length; i < objects.length + 2; i++) {
                assertEquals(
                    ThrowableBearingStorageObject.class, headObjectsWithMissing[i].getClass());
                assertEquals(404,
                    ((ServiceException)
                        ((ThrowableBearingStorageObject)headObjectsWithMissing[i])
                        .getThrowable()).getResponseCode());
            }

            // Retrieve data for multiple objects
            StorageObject[] getObjects = simpleThreadedService.getObjects(bucketName, objects);
            assertEquals(objects.length, getObjects.length);
            for (int i = 0; i < objects.length; i++) {
                // TODO: Google Storage doesn't reliably return Content-Length in a GET
                if (!TARGET_SERVICE_GS.equals(getTargetService())) {
                    assertEquals("Some data".length(), getObjects[i].getContentLength());
                }
                // Check all objects retrieved have expected data content.
                assertEquals("Some data", ServiceUtils.readInputStreamToString(
                    getObjects[i].getDataInputStream(), Constants.DEFAULT_ENCODING));
            }

            // Delete multiple objects
            simpleThreadedService.deleteObjects(bucketName, objects);
            listedObjects = service.listObjects(bucketName);
            assertEquals(0, listedObjects.length);
        } finally {
            cleanupBucketForTest("testSimpleThreadedStorageService");
        }
View Full Code Here

TOP

Related Classes of org.jets3t.service.multi.SimpleThreadedStorageService

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.