Repository: jclouds-examples Updated Branches: refs/heads/master fb328b5a8 -> 0347a90e2
Updated Cloud Files examples for 1.7.3 Project: http://git-wip-us.apache.org/repos/asf/jclouds-examples/repo Commit: http://git-wip-us.apache.org/repos/asf/jclouds-examples/commit/0347a90e Tree: http://git-wip-us.apache.org/repos/asf/jclouds-examples/tree/0347a90e Diff: http://git-wip-us.apache.org/repos/asf/jclouds-examples/diff/0347a90e Branch: refs/heads/master Commit: 0347a90e26f2829ef2574eff63638f044b3134c9 Parents: fb328b5 Author: Jeremy Daggett <[email protected]> Authored: Tue May 27 09:36:48 2014 -0700 Committer: Everett Toews <[email protected]> Committed: Tue Jun 10 11:25:29 2014 -0500 ---------------------------------------------------------------------- rackspace/pom.xml | 4 +- .../rackspace/cloudfiles/CloudFilesPublish.java | 23 +++--- .../rackspace/cloudfiles/CreateContainer.java | 2 +- .../CrossOriginResourceSharingContainer.java | 10 ++- .../cloudfiles/DeleteObjectsAndContainer.java | 6 +- .../rackspace/cloudfiles/GenerateTempURL.java | 12 ++- .../rackspace/cloudfiles/GetContainer.java | 82 ++++++++++++++++++++ .../rackspace/cloudfiles/GetObject.java | 2 +- .../rackspace/cloudfiles/ListContainers.java | 2 +- .../rackspace/cloudfiles/ListObjects.java | 4 +- .../cloudfiles/UploadDirectoryToCDN.java | 21 ++--- .../rackspace/cloudfiles/UploadObjects.java | 8 +- 12 files changed, 135 insertions(+), 41 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/jclouds-examples/blob/0347a90e/rackspace/pom.xml ---------------------------------------------------------------------- diff --git a/rackspace/pom.xml b/rackspace/pom.xml index 9ed2fe2..939bf52 100644 --- a/rackspace/pom.xml +++ b/rackspace/pom.xml @@ -22,11 +22,11 @@ <modelVersion>4.0.0</modelVersion> <groupId>org.apache.jclouds.examples</groupId> <artifactId>rackspace-examples</artifactId> - <version>1.7.3-SNAPSHOT</version> + <version>1.7.4-SNAPSHOT</version> <name>rackspace-examples</name> <properties> - <jclouds.version>1.7.2</jclouds.version> + <jclouds.version>1.7.3</jclouds.version> </properties> <dependencies> http://git-wip-us.apache.org/repos/asf/jclouds-examples/blob/0347a90e/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/CloudFilesPublish.java ---------------------------------------------------------------------- diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/CloudFilesPublish.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/CloudFilesPublish.java index 41e88f5..bc69671 100644 --- a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/CloudFilesPublish.java +++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/CloudFilesPublish.java @@ -34,11 +34,13 @@ import org.jclouds.io.Payload; import org.jclouds.io.Payloads; import org.jclouds.openstack.swift.v1.features.ObjectApi; import org.jclouds.openstack.swift.v1.options.CreateContainerOptions; +import org.jclouds.openstack.swift.v1.reference.SwiftHeaders; import org.jclouds.rackspace.cloudfiles.v1.CloudFilesApi; import org.jclouds.rackspace.cloudfiles.v1.features.CDNApi; import com.google.common.base.Charsets; -import com.google.common.collect.ImmutableMap; +import com.google.common.collect.ImmutableMultimap; +import com.google.common.collect.Multimap; import com.google.common.io.ByteSource; import com.google.common.io.Closeables; import com.google.common.io.Files; @@ -83,8 +85,13 @@ public class CloudFilesPublish implements Closeable { */ private void createContainer() { System.out.format("Create Container%n"); - - cloudFiles.containerApiInRegion(REGION).createIfAbsent(CONTAINER_PUBLISH, CreateContainerOptions.NONE); + // create a Multimap for the static web headers + Multimap<String, String> enableStaticWebHeaders = + ImmutableMultimap.of(SwiftHeaders.STATIC_WEB_INDEX, FILENAME + SUFFIX, + SwiftHeaders.STATIC_WEB_ERROR, "error.html"); + + CreateContainerOptions opts = new CreateContainerOptions().headers(enableStaticWebHeaders); + cloudFiles.getContainerApiForRegion(REGION).create(CONTAINER_PUBLISH, opts); System.out.format(" %s%n", CONTAINER_PUBLISH); } @@ -100,14 +107,12 @@ public class CloudFilesPublish implements Closeable { try { Files.write("Hello Cloud Files", tempFile, Charsets.UTF_8); - ObjectApi objectApi = cloudFiles.objectApiInRegionForContainer(REGION, CONTAINER_PUBLISH); + ObjectApi objectApi = cloudFiles.getObjectApiForRegionAndContainer(REGION, CONTAINER_PUBLISH); ByteSource byteSource = Files.asByteSource(tempFile); Payload payload = Payloads.newByteSourcePayload(byteSource); - objectApi.replace(FILENAME + SUFFIX, payload, ImmutableMap.<String, String>of()); - - System.out.format(" %s%s%n", FILENAME, SUFFIX); + objectApi.put(FILENAME + SUFFIX, payload); } finally { tempFile.delete(); } @@ -119,8 +124,8 @@ public class CloudFilesPublish implements Closeable { */ private void enableCdnContainer() { System.out.format("Enable CDN Container%n"); - - CDNApi cdnApi = cloudFiles.cdnApiInRegion(REGION); + + CDNApi cdnApi = cloudFiles.getCDNApiForRegion(REGION); URI cdnURI = cdnApi.enable(CONTAINER_PUBLISH); System.out.format(" Go to %s/%s%s%n", cdnURI, FILENAME, SUFFIX); http://git-wip-us.apache.org/repos/asf/jclouds-examples/blob/0347a90e/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/CreateContainer.java ---------------------------------------------------------------------- diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/CreateContainer.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/CreateContainer.java index e982389..a678739 100644 --- a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/CreateContainer.java +++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/CreateContainer.java @@ -71,7 +71,7 @@ public class CreateContainer implements Closeable { CreateContainerOptions options = CreateContainerOptions.Builder .metadata(ImmutableMap.of("key1", "value1", "key2", "value2")); - cloudFiles.containerApiInRegion(REGION).createIfAbsent(CONTAINER, options); + cloudFiles.getContainerApiForRegion(REGION).create(CONTAINER, options); System.out.format(" %s%n", CONTAINER); } http://git-wip-us.apache.org/repos/asf/jclouds-examples/blob/0347a90e/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/CrossOriginResourceSharingContainer.java ---------------------------------------------------------------------- diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/CrossOriginResourceSharingContainer.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/CrossOriginResourceSharingContainer.java index 0de0ff4..7d74d99 100644 --- a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/CrossOriginResourceSharingContainer.java +++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/CrossOriginResourceSharingContainer.java @@ -33,6 +33,8 @@ import org.jclouds.openstack.swift.v1.options.CreateContainerOptions; import org.jclouds.rackspace.cloudfiles.v1.CloudFilesApi; import com.google.common.collect.ImmutableMap; +import com.google.common.collect.ImmutableMultimap; +import com.google.common.collect.Multimap; import com.google.common.io.Closeables; /** @@ -71,7 +73,7 @@ public class CrossOriginResourceSharingContainer implements Closeable { cloudFiles = ContextBuilder.newBuilder(PROVIDER) .credentials(username, apiKey) .buildApi(CloudFilesApi.class); - containerApi = cloudFiles.containerApiInRegion(REGION); + containerApi = cloudFiles.getContainerApiForRegion(REGION); } /** @@ -85,13 +87,13 @@ public class CrossOriginResourceSharingContainer implements Closeable { private void createCorsContainer() { System.out.format("Create Cross Origin Resource Sharing Container%n"); - Map<String, String> corsMetadata = ImmutableMap.of( + Multimap<String, String> headers = ImmutableMultimap.of( "Access-Control-Allow-Origin", "*", "Access-Control-Max-Age", "600", "Access-Control-Allow-Headers", "X-My-Header"); - CreateContainerOptions options = CreateContainerOptions.Builder.metadata(corsMetadata); + CreateContainerOptions options = CreateContainerOptions.Builder.headers(headers); - containerApi.createIfAbsent(CONTAINER, options); + containerApi.create(CONTAINER, options); System.out.format(" %s%n", CONTAINER); Container container = containerApi.get(CONTAINER); http://git-wip-us.apache.org/repos/asf/jclouds-examples/blob/0347a90e/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/DeleteObjectsAndContainer.java ---------------------------------------------------------------------- diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/DeleteObjectsAndContainer.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/DeleteObjectsAndContainer.java index 9337e46..1d69b13 100644 --- a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/DeleteObjectsAndContainer.java +++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/DeleteObjectsAndContainer.java @@ -76,13 +76,13 @@ public class DeleteObjectsAndContainer implements Closeable { private void deleteObjectsAndContainer() { System.out.format("Delete Container%n"); - List<Container> containers = cloudFiles.containerApiInRegion(REGION) + List<Container> containers = cloudFiles.getContainerApiForRegion(REGION) .list(ListContainerOptions.Builder.prefix(CONTAINER)).toList(); for (Container container: containers) { System.out.format(" %s%n", container.getName()); - ObjectApi objectApi = cloudFiles.objectApiInRegionForContainer(REGION, container.getName()); + ObjectApi objectApi = cloudFiles.getObjectApiForRegionAndContainer(REGION, container.getName()); ObjectList objects = objectApi.list(ListContainerOptions.NONE); for (SwiftObject object: objects) { @@ -90,7 +90,7 @@ public class DeleteObjectsAndContainer implements Closeable { objectApi.delete(object.getName()); } - cloudFiles.containerApiInRegion(REGION).deleteIfEmpty(container.getName()); + cloudFiles.getContainerApiForRegion(REGION).deleteIfEmpty(container.getName()); } } http://git-wip-us.apache.org/repos/asf/jclouds-examples/blob/0347a90e/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/GenerateTempURL.java ---------------------------------------------------------------------- diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/GenerateTempURL.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/GenerateTempURL.java index b24f981..72e0fb2 100644 --- a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/GenerateTempURL.java +++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/GenerateTempURL.java @@ -128,10 +128,14 @@ public class GenerateTempURL implements Closeable { // GET the file using jclouds File file = File.createTempFile(FILENAME, ".tmp"); - String content = Strings2.toString(blobStoreContext.utils().http().invoke(request).getPayload()); - Files.write(content, file, Charsets.UTF_8); - - System.out.format(" GET Success (%s)%n", file.getAbsolutePath()); + try { + String content = Strings2.toString(blobStoreContext.utils().http().invoke(request).getPayload()); + Files.write(content, file, Charsets.UTF_8); + + System.out.format(" GET Success (%s)%n", file.getAbsolutePath()); + } finally { + file.delete(); + } } private void generateDeleteTempURL() throws IOException { http://git-wip-us.apache.org/repos/asf/jclouds-examples/blob/0347a90e/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/GetContainer.java ---------------------------------------------------------------------- diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/GetContainer.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/GetContainer.java new file mode 100644 index 0000000..1f128e4 --- /dev/null +++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/GetContainer.java @@ -0,0 +1,82 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one + * or more contributor license agreements. See the NOTICE file + * distributed with this work for additional information + * regarding copyright ownership. The ASF licenses this file + * to you under the Apache License, Version 2.0 (the + * "License"); you may not use this file except in compliance + * with the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +package org.jclouds.examples.rackspace.cloudfiles; + +import static org.jclouds.examples.rackspace.cloudfiles.Constants.CONTAINER; +import static org.jclouds.examples.rackspace.cloudfiles.Constants.PROVIDER; +import static org.jclouds.examples.rackspace.cloudfiles.Constants.REGION; + +import java.io.Closeable; +import java.io.IOException; + +import org.jclouds.ContextBuilder; +import org.jclouds.openstack.swift.v1.domain.Container; +import org.jclouds.rackspace.cloudfiles.v1.CloudFilesApi; + +import com.google.common.io.Closeables; + +/** + * Create a Cloud Files container with some metadata associated with it. + * + * @author Everett Toews + * @author Jeremy Daggett + */ +public class GetContainer implements Closeable { + private final CloudFilesApi cloudFiles; + + /** + * To get a username and API key see http://jclouds.apache.org/guides/rackspace/ + * + * The first argument (args[0]) must be your username + * The second argument (args[1]) must be your API key + */ + public static void main(String[] args) throws IOException { + GetContainer getContainer = new GetContainer(args[0], args[1]); + + try { + getContainer.getContainer(); + } + catch (Exception e) { + e.printStackTrace(); + } + finally { + getContainer.close(); + } + } + + public GetContainer(String username, String apiKey) { + cloudFiles = ContextBuilder.newBuilder(PROVIDER) + .credentials(username, apiKey) + .buildApi(CloudFilesApi.class); + } + + private void getContainer() { + System.out.format("Get Container%n"); + + Container container = cloudFiles.getContainerApiForRegion(REGION).get(CONTAINER); + System.out.format(" %s%n", container); + } + + /** + * Always close your service when you're done with it. + */ + public void close() throws IOException { + Closeables.close(cloudFiles, true); + } +} http://git-wip-us.apache.org/repos/asf/jclouds-examples/blob/0347a90e/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/GetObject.java ---------------------------------------------------------------------- diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/GetObject.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/GetObject.java index fd6e88a..e5dd3f4 100644 --- a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/GetObject.java +++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/GetObject.java @@ -72,7 +72,7 @@ public class GetObject implements Closeable { private void getObject() { System.out.format("Get Object%n"); - ObjectApi objectApi = cloudFiles.objectApiInRegionForContainer(REGION, CONTAINER); + ObjectApi objectApi = cloudFiles.getObjectApiForRegionAndContainer(REGION, CONTAINER); SwiftObject object = objectApi.get("uploadObjectFromFile.txt", GetOptions.NONE); System.out.format(" %s%n", object); http://git-wip-us.apache.org/repos/asf/jclouds-examples/blob/0347a90e/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/ListContainers.java ---------------------------------------------------------------------- diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/ListContainers.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/ListContainers.java index 4483290..14187e7 100644 --- a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/ListContainers.java +++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/ListContainers.java @@ -67,7 +67,7 @@ public class ListContainers implements Closeable { private void listContainers() { System.out.format("List Containers%n"); - List<Container> containers = cloudFiles.containerApiInRegion(REGION).list().toList(); + List<Container> containers = cloudFiles.getContainerApiForRegion(REGION).list().toList(); for (Container container: containers) { System.out.format(" %s%n", container); } http://git-wip-us.apache.org/repos/asf/jclouds-examples/blob/0347a90e/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/ListObjects.java ---------------------------------------------------------------------- diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/ListObjects.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/ListObjects.java index b53a89c..81512d9 100644 --- a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/ListObjects.java +++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/ListObjects.java @@ -71,7 +71,7 @@ public class ListObjects implements Closeable { private void listObjects() { System.out.format("List Objects%n"); - ObjectApi objectApi = cloudFiles.objectApiInRegionForContainer(REGION, CONTAINER); + ObjectApi objectApi = cloudFiles.getObjectApiForRegionAndContainer(REGION, CONTAINER); ObjectList objects = objectApi.list(ListContainerOptions.NONE); for (SwiftObject object: objects) { @@ -82,7 +82,7 @@ public class ListObjects implements Closeable { private void listObjectsWithFiltering() { System.out.format("List Objects With Filtering%n"); - ObjectApi objectApi = cloudFiles.objectApiInRegionForContainer(REGION, CONTAINER); + ObjectApi objectApi = cloudFiles.getObjectApiForRegionAndContainer(REGION, CONTAINER); ListContainerOptions filter = ListContainerOptions.Builder.prefix("createObjectFromString"); ObjectList objects = objectApi.list(filter); http://git-wip-us.apache.org/repos/asf/jclouds-examples/blob/0347a90e/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/UploadDirectoryToCDN.java ---------------------------------------------------------------------- diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/UploadDirectoryToCDN.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/UploadDirectoryToCDN.java index 30a11a6..1527a05 100644 --- a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/UploadDirectoryToCDN.java +++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/UploadDirectoryToCDN.java @@ -36,11 +36,13 @@ import org.jclouds.blobstore.BlobStore; import org.jclouds.blobstore.BlobStoreContext; import org.jclouds.blobstore.domain.Blob; import org.jclouds.io.Payloads; +import org.jclouds.openstack.swift.v1.options.UpdateContainerOptions; +import org.jclouds.openstack.swift.v1.reference.SwiftHeaders; import org.jclouds.rackspace.cloudfiles.v1.CloudFilesApi; -import org.jclouds.rackspace.cloudfiles.v1.features.CDNApi; -import org.jclouds.rackspace.cloudfiles.v1.options.UpdateCDNContainerOptions; +import com.google.common.collect.ImmutableMultimap; import com.google.common.collect.Lists; +import com.google.common.collect.Multimap; import com.google.common.io.ByteSource; import com.google.common.io.Closeables; import com.google.common.io.Files; @@ -168,12 +170,15 @@ public class UploadDirectoryToCDN implements Closeable { */ private void enableCdnContainer(String container) { System.out.format("Enable CDN%n"); + Multimap<String, String> enableStaticWebHeaders = + ImmutableMultimap.of(SwiftHeaders.STATIC_WEB_INDEX, "index.html", + SwiftHeaders.STATIC_WEB_ERROR, "error.html"); - CDNApi cdnApi = cloudFiles.cdnApiInRegion(REGION); - URI cdnURI = cdnApi.enable(container); - - cdnApi.update(container, UpdateCDNContainerOptions.Builder.staticWebsiteIndexPage("index.html")); + UpdateContainerOptions opts = new UpdateContainerOptions().headers(enableStaticWebHeaders); + cloudFiles.getContainerApiForRegion(REGION).update(container, opts); + // enable the CDN container + URI cdnURI = cloudFiles.getCDNApiForRegion(REGION).enable(container); System.out.format(" Go to %s/%n", cdnURI); } @@ -197,7 +202,6 @@ public class UploadDirectoryToCDN implements Closeable { this.toBeUploadedBlobDetail = toBeUploadedBlobDetail; } - @Override public BlobDetail call() throws Exception { ByteSource byteSource = Files.asByteSource(toBeUploadedBlobDetail.getLocalFile()); @@ -218,12 +222,11 @@ public class UploadDirectoryToCDN implements Closeable { * the user of upload progress. */ private class BlobUploaderCallback implements FutureCallback<BlobDetail> { - @Override + public void onSuccess(BlobDetail result) { System.out.format("."); } - @Override public void onFailure(Throwable t) { System.out.format("X %s", t); } http://git-wip-us.apache.org/repos/asf/jclouds-examples/blob/0347a90e/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/UploadObjects.java ---------------------------------------------------------------------- diff --git a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/UploadObjects.java b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/UploadObjects.java index 1363b58..aadcd61 100644 --- a/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/UploadObjects.java +++ b/rackspace/src/main/java/org/jclouds/examples/rackspace/cloudfiles/UploadObjects.java @@ -37,7 +37,6 @@ import org.jclouds.openstack.swift.v1.blobstore.RegionScopedBlobStoreContext; import org.jclouds.rackspace.cloudfiles.v1.CloudFilesApi; import com.google.common.base.Charsets; -import com.google.common.collect.ImmutableMap; import com.google.common.io.ByteSource; import com.google.common.io.Closeables; import com.google.common.io.Files; @@ -96,8 +95,8 @@ public class UploadObjects implements Closeable { ByteSource byteSource = Files.asByteSource(tempFile); Payload payload = Payloads.newByteSourcePayload(byteSource); - cloudFiles.objectApiInRegionForContainer(REGION, CONTAINER) - .replace(filename + suffix, payload, ImmutableMap.<String, String> of()); + cloudFiles.getObjectApiForRegionAndContainer(REGION, CONTAINER) + .put(filename + suffix, payload); System.out.format(" %s%s%n", filename, suffix); } finally { @@ -116,8 +115,7 @@ public class UploadObjects implements Closeable { ByteSource source = ByteSource.wrap("uploadObjectFromString".getBytes()); Payload payload = Payloads.newByteSourcePayload(source); - cloudFiles.objectApiInRegionForContainer(REGION, CONTAINER) - .replace(filename, payload, ImmutableMap.<String, String>of()); + cloudFiles.getObjectApiForRegionAndContainer(REGION, CONTAINER).put(filename, payload); System.out.format(" %s%n", filename); }
