Search in sources :

Example 1 with ListObjectsRequest

use of com.aliyun.oss.model.ListObjectsRequest in project alluxio by Alluxio.

the class OSSUnderFileSystem method getObjectListingChunk.

@Override
protected ObjectListingChunk getObjectListingChunk(String key, boolean recursive) throws IOException {
    String delimiter = recursive ? "" : PATH_SEPARATOR;
    key = PathUtils.normalizePath(key, PATH_SEPARATOR);
    // In case key is root (empty string) do not normalize prefix
    key = key.equals(PATH_SEPARATOR) ? "" : key;
    ListObjectsRequest request = new ListObjectsRequest(mBucketName);
    request.setPrefix(key);
    request.setMaxKeys(getListingChunkLength());
    request.setDelimiter(delimiter);
    ObjectListing result = getObjectListingChunk(request);
    if (result != null) {
        return new OSSObjectListingChunk(request, result);
    }
    return null;
}
Also used : ListObjectsRequest(com.aliyun.oss.model.ListObjectsRequest) ObjectListing(com.aliyun.oss.model.ObjectListing)

Example 2 with ListObjectsRequest

use of com.aliyun.oss.model.ListObjectsRequest in project hadoop by apache.

the class AliyunOSSFileSystemStore method listObjects.

/**
   * list objects.
   *
   * @param prefix prefix.
   * @param maxListingLength max no. of entries
   * @param marker last key in any previous search.
   * @param recursive whether to list directory recursively.
   * @return a list of matches.
   */
public ObjectListing listObjects(String prefix, int maxListingLength, String marker, boolean recursive) {
    String delimiter = recursive ? null : "/";
    prefix = AliyunOSSUtils.maybeAddTrailingSlash(prefix);
    ListObjectsRequest listRequest = new ListObjectsRequest(bucketName);
    listRequest.setPrefix(prefix);
    listRequest.setDelimiter(delimiter);
    listRequest.setMaxKeys(maxListingLength);
    listRequest.setMarker(marker);
    ObjectListing listing = ossClient.listObjects(listRequest);
    statistics.incrementReadOps(1);
    return listing;
}
Also used : ListObjectsRequest(com.aliyun.oss.model.ListObjectsRequest) ObjectListing(com.aliyun.oss.model.ObjectListing)

Example 3 with ListObjectsRequest

use of com.aliyun.oss.model.ListObjectsRequest in project hadoop by apache.

the class AliyunOSSFileSystemStore method deleteDirs.

/**
   * Delete a directory from Aliyun OSS.
   *
   * @param key directory key to delete.
   * @throws IOException if failed to delete directory.
   */
public void deleteDirs(String key) throws IOException {
    key = AliyunOSSUtils.maybeAddTrailingSlash(key);
    ListObjectsRequest listRequest = new ListObjectsRequest(bucketName);
    listRequest.setPrefix(key);
    listRequest.setDelimiter(null);
    listRequest.setMaxKeys(maxKeys);
    while (true) {
        ObjectListing objects = ossClient.listObjects(listRequest);
        statistics.incrementReadOps(1);
        List<String> keysToDelete = new ArrayList<String>();
        for (OSSObjectSummary objectSummary : objects.getObjectSummaries()) {
            keysToDelete.add(objectSummary.getKey());
        }
        deleteObjects(keysToDelete);
        if (objects.isTruncated()) {
            listRequest.setMarker(objects.getNextMarker());
        } else {
            break;
        }
    }
}
Also used : ListObjectsRequest(com.aliyun.oss.model.ListObjectsRequest) OSSObjectSummary(com.aliyun.oss.model.OSSObjectSummary) ArrayList(java.util.ArrayList) ObjectListing(com.aliyun.oss.model.ObjectListing)

Aggregations

ListObjectsRequest (com.aliyun.oss.model.ListObjectsRequest)3 ObjectListing (com.aliyun.oss.model.ObjectListing)3 OSSObjectSummary (com.aliyun.oss.model.OSSObjectSummary)1 ArrayList (java.util.ArrayList)1