コード例 #1
0
  @Override
  protected void putResource(File source, String destination, TransferProgress transferProgress)
      throws TransferFailedException, ResourceDoesNotExistException {
    String key = getKey(destination);

    mkdirs(key, 0);

    InputStream in = null;
    try {
      ObjectMetadata objectMetadata = new ObjectMetadata();
      objectMetadata.setContentLength(source.length());
      objectMetadata.setContentType(Mimetypes.getInstance().getMimetype(source));

      in = new TransferProgressFileInputStream(source, transferProgress);

      this.amazonS3.putObject(new PutObjectRequest(this.bucketName, key, in, objectMetadata));
    } catch (AmazonServiceException e) {
      throw new TransferFailedException(String.format("Cannot write file to '%s'", destination), e);
    } catch (FileNotFoundException e) {
      throw new ResourceDoesNotExistException(
          String.format("Cannot read file from '%s'", source), e);
    } finally {
      IoUtils.closeQuietly(in);
    }
  }
コード例 #2
0
  @Override
  protected void getResource(
      String resourceName, File destination, TransferProgress transferProgress)
      throws TransferFailedException, ResourceDoesNotExistException {
    InputStream in = null;
    OutputStream out = null;
    try {
      S3Object s3Object = this.amazonS3.getObject(this.bucketName, getKey(resourceName));

      in = s3Object.getObjectContent();
      out = new TransferProgressFileOutputStream(destination, transferProgress);

      IoUtils.copy(in, out);
    } catch (AmazonServiceException e) {
      throw new ResourceDoesNotExistException(
          String.format("'%s' does not exist", resourceName), e);
    } catch (FileNotFoundException e) {
      throw new TransferFailedException(String.format("Cannot write file to '%s'", destination), e);
    } catch (IOException e) {
      throw new TransferFailedException(
          String.format("Cannot read from '%s' and write to '%s'", resourceName, destination), e);
    } finally {
      IoUtils.closeQuietly(in, out);
    }
  }