当前位置: 首页 > 文档资料 > Ceph 中文文档 >

Java Swift Examples

优质
小牛编辑
137浏览
2023-12-01

Setup

The following examples may require some or all of the following Java classes to be imported:

import java.io.File;
import java.util.List;
import java.util.Map;
import com.rackspacecloud.client.cloudfiles.FilesClient;
import com.rackspacecloud.client.cloudfiles.FilesConstants;
import com.rackspacecloud.client.cloudfiles.FilesContainer;
import com.rackspacecloud.client.cloudfiles.FilesContainerExistsException;
import com.rackspacecloud.client.cloudfiles.FilesObject;
import com.rackspacecloud.client.cloudfiles.FilesObjectMetaData;

Create a Connection

This creates a connection so that you can interact with the server:

String username = "USERNAME";
String password = "PASSWORD";
String authUrl  = "https://objects.dreamhost.com/auth";

FilesClient client = new FilesClient(username, password, authUrl);
if (!client.login()) {
        throw new RuntimeException("Failed to log in");
}

Create a Container

This creates a new container called my-new-container:

client.createContainer("my-new-container");

Create an Object

This creates an object foo.txt from the file named foo.txt in the container my-new-container:

File file = new File("foo.txt");
String mimeType = FilesConstants.getMimetype("txt");
client.storeObject("my-new-container", file, mimeType);

Add/Update Object Metadata

This adds the metadata key-value pair key:value to the object named foo.txt in the container my-new-container:

FilesObjectMetaData metaData = client.getObjectMetaData("my-new-container", "foo.txt");
metaData.addMetaData("key", "value");

Map<String, String> metamap = metaData.getMetaData();
client.updateObjectMetadata("my-new-container", "foo.txt", metamap);

List Owned Containers

This gets a list of Containers that you own. This also prints out the container name.

List<FilesContainer> containers = client.listContainers();
for (FilesContainer container : containers) {
        System.out.println("  " + container.getName());
}

The output will look something like this:

mahbuckat1
mahbuckat2
mahbuckat3

List a Container’s Content

This gets a list of objects in the container my-new-container; and, it also prints out each object’s name, the file size, and last modified date:

List<FilesObject> objects = client.listObjects("my-new-container");
for (FilesObject object : objects) {
        System.out.println("  " + object.getName());
}

The output will look something like this:

myphoto1.jpg
myphoto2.jpg

Retrieve an Object’s Metadata

This retrieves metadata and gets the MIME type for an object named foo.txt in a container named my-new-container:

FilesObjectMetaData metaData =  client.getObjectMetaData("my-new-container", "foo.txt");
String mimeType = metaData.getMimeType();

Retrieve an Object

This downloads the object foo.txt in the container my-new-container and saves it in ./outfile.txt:

FilesObject obj;
File outfile = new File("outfile.txt");

List<FilesObject> objects = client.listObjects("my-new-container");
for (FilesObject object : objects) {
        String name = object.getName();
        if (name.equals("foo.txt")) {
                obj = object;
                obj.writeObjectToFile(outfile);
        }
}

Delete an Object

This deletes the object goodbye.txt in the container “my-new-container”:

client.deleteObject("my-new-container", "goodbye.txt");

Delete a Container

This deletes a container named “my-new-container”:

client.deleteContainer("my-new-container");

Note

The container must be empty! Otherwise it won’t work!