Package com.amazon.s3

Source Code of com.amazon.s3.GetStreamResponse

// Copyright (c) 2006 SilvaSoft, Inc.
//
// Permission is hereby granted, free of charge, to any person obtaining a
// copy of this software and associated documentation files (the "Software"),
// to deal in the Software without restriction, including without limitation
// the rights to use, copy, modify, merge, publish, distribute, sublicense,
// and/or sell copies of the Software, and to permit persons to whom the
// Software is furnished to do so, subject to the following conditions:
//
// The above copyright notice and this permission notice shall be included in
// all copies or substantial portions of the Software.
//
// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR
// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
// USE OR OTHER DEALINGS IN THE SOFTWARE.

// author:    http://www.silvasoftinc.com
// author:    Dominic Da Silva (dominic.dasilva@gmail.com)
// version:   2.1
// date:      04/19/2006

package com.amazon.s3;

import java.io.IOException;
import java.net.HttpURLConnection;
import java.util.Iterator;
import java.util.Map;
import java.util.TreeMap;

import com.silvasoftinc.s3.S3StreamObject;

/**
* A Response object returned from AWSAuthConnection.get(). Exposes the
* attribute object, which represents the retrieved object.
*/
public class GetStreamResponse extends Response {
  public S3StreamObject object;

  /**
   * Pulls a representation of an S3Object out of the HttpURLConnection
   * response.
   */
  public GetStreamResponse(HttpURLConnection connection) throws IOException {
    super(connection);
    if (connection.getResponseCode() < 400) {
      Map metadata = extractMetadata(connection);
      object = new S3StreamObject(connection.getInputStream(),
          metadata);
    }
  }

  /**
   * Examines the response's header fields and returns a Map from String to
   * List of Strings representing the object's metadata.
   */
  private Map extractMetadata(HttpURLConnection connection) {
    TreeMap metadata = new TreeMap();
    Map headers = connection.getHeaderFields();
    for (Iterator i = headers.keySet().iterator(); i.hasNext();) {
      String key = (String) i.next();
      if (key == null)
        continue;
      if (key.startsWith(Utils.METADATA_PREFIX)) {
        metadata.put(key.substring(Utils.METADATA_PREFIX.length()),
            headers.get(key));
      }
    }

    return metadata;
  }
}
TOP

Related Classes of com.amazon.s3.GetStreamResponse

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.