mirror of https://github.com/ceph/ceph
171 lines
4.0 KiB
ReStructuredText
171 lines
4.0 KiB
ReStructuredText
|
.. _java_swift:
|
||
|
|
||
|
=====================
|
||
|
Java Swift Examples
|
||
|
=====================
|
||
|
|
||
|
Setup
|
||
|
=====
|
||
|
|
||
|
The following examples may require some or all of the following Java
|
||
|
classes to be imported:
|
||
|
|
||
|
.. code-block:: java
|
||
|
|
||
|
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:
|
||
|
|
||
|
.. code-block:: java
|
||
|
|
||
|
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``:
|
||
|
|
||
|
.. code-block:: java
|
||
|
|
||
|
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``:
|
||
|
|
||
|
.. code-block:: java
|
||
|
|
||
|
File file = new File("foo.txt");
|
||
|
String mimeType = FilesConstants.getMimetype("txt");
|
||
|
client.storeObject("my-new-container", file, mimeType);
|
||
|
|
||
|
|
||
|
Add Metadata to Object
|
||
|
======================
|
||
|
|
||
|
This adds the metadata key-value pair ``key``:``value`` to the object named
|
||
|
``foo.txt`` in the container ``my-new-container``:
|
||
|
|
||
|
.. code-block:: java
|
||
|
|
||
|
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.
|
||
|
|
||
|
.. code-block:: java
|
||
|
|
||
|
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:
|
||
|
|
||
|
.. code-block:: java
|
||
|
|
||
|
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``:
|
||
|
|
||
|
.. code-block:: java
|
||
|
|
||
|
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``:
|
||
|
|
||
|
.. code-block:: java
|
||
|
|
||
|
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":
|
||
|
|
||
|
.. code-block:: java
|
||
|
|
||
|
client.deleteObject("my-new-container", "goodbye.txt");
|
||
|
|
||
|
Delete a Container
|
||
|
==================
|
||
|
|
||
|
This deletes a container named "my-new-container":
|
||
|
|
||
|
.. code-block:: java
|
||
|
|
||
|
client.deleteContainer("my-new-container");
|
||
|
|
||
|
.. note:: The container must be empty! Otherwise it won't work!
|