获取对象列表

对象是存储数据的基本单元。对象由元信息(Object Meta),用户数据(Data)和文件名(Key)组成。对象由桶内部唯一的Key来标识。本文介绍如何获取对象列表。

接口定义:

// 简化接口	
public ObjectListing listObjects(String bucketName)
// 完整接口
public ObjectListing listObjects(ListObjectsRequest listObjectsRequest)

参数:

参数名 类型 说明
bucketName String 包含bucket及相关的请求参数
prefix String 如果非NULL,则仅列举以指定的prefix作为前缀的对象
marker String 如果非NULL,指定一个标识符,在列举桶内对象列表时,返回的对象列表将仅是按照字典顺序排序后位于这个标识符之后的对象
delimiter String 如果非NULL,则是用来对桶内对象进行分组的字符串。所有名称包含指定的前缀且第一次出现delimiter字符之间的对象将作为一组元素,在返回信息的CommonPrefixes节点显示
maxkeys int 指定返回对象的最大数量,若为0则列举所有对象

代码示例:

    public void ListObjects(String bucketName, OnS3ResponseListener<List<S3ObjectSummary>> listener) {
        GlobalThreadPool.getInstance().execute(() -> {
            try {
                List<S3ObjectSummary> list = sS3Client.listObjects(bucketName).getObjectSummaries();

                Handler mainHandler = new Handler(Looper.getMainLooper());
                mainHandler.post(() -> listener.onResponse(list));
            } catch (Exception e) {
                Handler mainHandler = new Handler(Looper.getMainLooper());
                mainHandler.post(() -> listener.onError());
            }
        });
    }