ceph/doc/radosgw/swift/java.rst

176 lines
4.6 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 org.javaswift.joss.client.factory.AccountConfig;
import org.javaswift.joss.client.factory.AccountFactory;
import org.javaswift.joss.client.factory.AuthenticationMethod;
import org.javaswift.joss.model.Account;
import org.javaswift.joss.model.Container;
import org.javaswift.joss.model.StoredObject;
import java.io.File;
import java.io.IOException;
import java.util.*;
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://radosgw.endpoint/auth/1.0";
AccountConfig config = new AccountConfig();
config.setUsername(username);
config.setPassword(password);
config.setAuthUrl(authUrl);
config.setAuthenticationMethod(AuthenticationMethod.BASIC);
Account account = new AccountFactory(config).createAccount();
Create a Container
==================
This creates a new container called ``my-new-container``:
.. code-block:: java
Container container = account.getContainer("my-new-container");
container.create();
Create an Object
================
This creates an object ``foo.txt`` from the file named ``foo.txt`` in
the container ``my-new-container``:
.. code-block:: java
Container container = account.getContainer("my-new-container");
StoredObject object = container.getObject("foo.txt");
object.uploadObject(new File("foo.txt"));
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``:
.. code-block:: java
Container container = account.getContainer("my-new-container");
StoredObject object = container.getObject("foo.txt");
Map<String, Object> metadata = new TreeMap<String, Object>();
metadata.put("key", "value");
object.setMetadata(metadata);
List Owned Containers
=====================
This gets a list of Containers that you own.
This also prints out the container name.
.. code-block:: java
Collection<Container> containers = account.list();
for (Container currentContainer : containers) {
System.out.println(currentContainer.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
Container container = account.getContainer("my-new-container");
Collection<StoredObject> objects = container.list();
for (StoredObject currentObject : objects) {
System.out.println(currentObject.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
Container container = account.getContainer("my-new-container");
StoredObject object = container.getObject("foo.txt");
Map<String, Object> returnedMetadata = object.getMetadata();
for (String name : returnedMetadata.keySet()) {
System.out.println("META / "+name+": "+returnedMetadata.get(name));
}
Retrieve an Object
==================
This downloads the object ``foo.txt`` in the container ``my-new-container``
and saves it in ``./outfile.txt``:
.. code-block:: java
Container container = account.getContainer("my-new-container");
StoredObject object = container.getObject("foo.txt");
object.downloadObject(new File("outfile.txt"));
Delete an Object
================
This deletes the object ``goodbye.txt`` in the container "my-new-container":
.. code-block:: java
Container container = account.getContainer("my-new-container");
StoredObject object = container.getObject("foo.txt");
object.delete();
Delete a Container
==================
This deletes a container named "my-new-container":
.. code-block:: java
Container container = account.getContainer("my-new-container");
container.delete();
.. note:: The container must be empty! Otherwise it won't work!