org.apache.hadoop.fs.swift.http.HttpBodyContent Java Examples

The following examples show how to use org.apache.hadoop.fs.swift.http.HttpBodyContent. You can vote up the ones you like or vote down the ones you don't like, and go to the original project or source file by following the links above each example. You may check out the related API usage on the sidebar.
Example #1
Source File: SwiftNativeFileSystemStore.java    From sahara-extra with Apache License 2.0 6 votes vote down vote up
/**
 * Get the object as an input stream
 *
 * @param path object path
 * @return the input stream -this must be closed to terminate the connection
 * @throws IOException           IO problems
 * @throws FileNotFoundException path doesn't resolve to an object
 */
public HttpBodyContent getObject(Path path) throws IOException {
  List<String> locations = getDataLocalEndpoints(path);

  for (String url : locations) {
    if (LOG.isDebugEnabled()) {
      LOG.debug("Reading " + path + " from location: " + url);
    }
    try {
      return swiftRestClient.getData(new URI(url),
          SwiftRestClient.NEWEST);
    } catch (Exception e) {
      // Ignore
      // It is possible that endpoint doesn't contains needed data.
    }
  }

  if (LOG.isDebugEnabled()) {
    LOG.debug("Reading " + path + " from proxy node");
  }
  return swiftRestClient.getData(toObjectPath(path),
                               SwiftRestClient.NEWEST);
}
 
Example #2
Source File: SwiftNativeFileSystemStore.java    From sahara-extra with Apache License 2.0 6 votes vote down vote up
/**
 * Get the input stream starting from a specific point.
 *
 * @param path           path to object
 * @param byteRangeStart starting point
 * @param length         no. of bytes
 * @return an input stream that must be closed
 * @throws IOException IO problems
 */
public HttpBodyContent getObject(Path path, long byteRangeStart, long length)
        throws IOException {
  List<String> locations = getDataLocalEndpoints(path);

  for (String url : locations) {
    if (LOG.isDebugEnabled()) {
      LOG.debug("Reading " + path + " from location: " + url);
    }
    try {
      return swiftRestClient.getData(new URI(url), byteRangeStart, length);
    } catch (Exception e) {
      //Ignore
    }
  }

  if (LOG.isDebugEnabled()) {
    LOG.debug("Reading " + path + " from proxy node");
  }

  return swiftRestClient.getData(
    toObjectPath(path), byteRangeStart, length);
}
 
Example #3
Source File: SwiftNativeInputStream.java    From hadoop with Apache License 2.0 5 votes vote down vote up
/**
 * Fill the buffer from the target position
 * If the target position == current position, the
 * read still goes ahead; this is a way of handling partial read failures
 * @param targetPos target position
 * @throws IOException IO problems on the read
 */
private void fillBuffer(long targetPos) throws IOException {
  long length = targetPos + bufferSize;
  SwiftUtils.debug(LOG, "Fetching %d bytes starting at %d", length, targetPos);
  HttpBodyContent blob = nativeStore.getObject(path, targetPos, length);
  httpStream = blob.getInputStream();
  updateStartOfBufferPosition(targetPos, blob.getContentLength());
}
 
Example #4
Source File: SwiftNativeInputStream.java    From big-c with Apache License 2.0 5 votes vote down vote up
/**
 * Fill the buffer from the target position
 * If the target position == current position, the
 * read still goes ahead; this is a way of handling partial read failures
 * @param targetPos target position
 * @throws IOException IO problems on the read
 */
private void fillBuffer(long targetPos) throws IOException {
  long length = targetPos + bufferSize;
  SwiftUtils.debug(LOG, "Fetching %d bytes starting at %d", length, targetPos);
  HttpBodyContent blob = nativeStore.getObject(path, targetPos, length);
  httpStream = blob.getInputStream();
  updateStartOfBufferPosition(targetPos, blob.getContentLength());
}
 
Example #5
Source File: SwiftNativeInputStream.java    From sahara-extra with Apache License 2.0 5 votes vote down vote up
/**
 * Fill the buffer from the target position
 * If the target position == current position, the
 * read still goes ahead; this is a way of handling partial read failures
 * @param targetPos target position
 * @throws IOException IO problems on the read
 */
private void fillBuffer(long targetPos) throws IOException {
  long length = targetPos + bufferSize;
  SwiftUtils.debug(LOG, "Fetching %d bytes starting at %d", length, targetPos);
  HttpBodyContent blob = nativeStore.getObject(path, targetPos, length);
  httpStream = blob.getInputStream();
  updateStartOfBufferPosition(targetPos, blob.getContentLength());
}
 
Example #6
Source File: SwiftNativeFileSystemStore.java    From hadoop with Apache License 2.0 2 votes vote down vote up
/**
 * Get the object as an input stream
 *
 * @param path object path
 * @return the input stream -this must be closed to terminate the connection
 * @throws IOException           IO problems
 * @throws FileNotFoundException path doesn't resolve to an object
 */
public HttpBodyContent getObject(Path path) throws IOException {
  return swiftRestClient.getData(toObjectPath(path),
                                 SwiftRestClient.NEWEST);
}
 
Example #7
Source File: SwiftNativeFileSystemStore.java    From hadoop with Apache License 2.0 2 votes vote down vote up
/**
 * Get the input stream starting from a specific point.
 *
 * @param path           path to object
 * @param byteRangeStart starting point
 * @param length         no. of bytes
 * @return an input stream that must be closed
 * @throws IOException IO problems
 */
public HttpBodyContent getObject(Path path, long byteRangeStart, long length)
        throws IOException {
  return swiftRestClient.getData(
    toObjectPath(path), byteRangeStart, length);
}
 
Example #8
Source File: SwiftNativeFileSystemStore.java    From big-c with Apache License 2.0 2 votes vote down vote up
/**
 * Get the object as an input stream
 *
 * @param path object path
 * @return the input stream -this must be closed to terminate the connection
 * @throws IOException           IO problems
 * @throws FileNotFoundException path doesn't resolve to an object
 */
public HttpBodyContent getObject(Path path) throws IOException {
  return swiftRestClient.getData(toObjectPath(path),
                                 SwiftRestClient.NEWEST);
}
 
Example #9
Source File: SwiftNativeFileSystemStore.java    From big-c with Apache License 2.0 2 votes vote down vote up
/**
 * Get the input stream starting from a specific point.
 *
 * @param path           path to object
 * @param byteRangeStart starting point
 * @param length         no. of bytes
 * @return an input stream that must be closed
 * @throws IOException IO problems
 */
public HttpBodyContent getObject(Path path, long byteRangeStart, long length)
        throws IOException {
  return swiftRestClient.getData(
    toObjectPath(path), byteRangeStart, length);
}