Example usage for com.amazonaws.services.s3.model ObjectMetadata setContentLength

List of usage examples for com.amazonaws.services.s3.model ObjectMetadata setContentLength

Introduction

In this page you can find the example usage for com.amazonaws.services.s3.model ObjectMetadata setContentLength.

Prototype

public void setContentLength(long contentLength) 

Source Link

Document

<p> Sets the Content-Length HTTP header indicating the size of the associated object in bytes.

Usage

From source file:io.konig.camel.aws.s3.DeleteObjectProducer.java

License:Apache License

public void processMultiPart(final Exchange exchange) throws Exception {
    File filePayload = null;//www  .  java2 s . c o m
    Object obj = exchange.getIn().getMandatoryBody();
    // Need to check if the message body is WrappedFile
    if (obj instanceof WrappedFile) {
        obj = ((WrappedFile<?>) obj).getFile();
    }
    if (obj instanceof File) {
        filePayload = (File) obj;
    } else {
        throw new InvalidArgumentException("aws-s3: MultiPart upload requires a File input.");
    }

    ObjectMetadata objectMetadata = determineMetadata(exchange);
    if (objectMetadata.getContentLength() == 0) {
        objectMetadata.setContentLength(filePayload.length());
    }

    final String keyName = determineKey(exchange);
    final InitiateMultipartUploadRequest initRequest = new InitiateMultipartUploadRequest(
            getConfiguration().getBucketName(), keyName, objectMetadata);

    String storageClass = determineStorageClass(exchange);
    if (storageClass != null) {
        initRequest.setStorageClass(StorageClass.fromValue(storageClass));
    }

    String cannedAcl = exchange.getIn().getHeader(S3Constants.CANNED_ACL, String.class);
    if (cannedAcl != null) {
        CannedAccessControlList objectAcl = CannedAccessControlList.valueOf(cannedAcl);
        initRequest.setCannedACL(objectAcl);
    }

    AccessControlList acl = exchange.getIn().getHeader(S3Constants.ACL, AccessControlList.class);
    if (acl != null) {
        // note: if cannedacl and acl are both specified the last one will
        // be used. refer to
        // PutObjectRequest#setAccessControlList for more details
        initRequest.setAccessControlList(acl);
    }

    if (getConfiguration().isUseAwsKMS()) {
        SSEAwsKeyManagementParams keyManagementParams;
        if (ObjectHelper.isNotEmpty(getConfiguration().getAwsKMSKeyId())) {
            keyManagementParams = new SSEAwsKeyManagementParams(getConfiguration().getAwsKMSKeyId());
        } else {
            keyManagementParams = new SSEAwsKeyManagementParams();
        }
        initRequest.setSSEAwsKeyManagementParams(keyManagementParams);
    }

    LOG.trace("Initiating multipart upload [{}] from exchange [{}]...", initRequest, exchange);

    final InitiateMultipartUploadResult initResponse = getEndpoint().getS3Client()
            .initiateMultipartUpload(initRequest);
    final long contentLength = objectMetadata.getContentLength();
    final List<PartETag> partETags = new ArrayList<PartETag>();
    long partSize = getConfiguration().getPartSize();
    CompleteMultipartUploadResult uploadResult = null;

    long filePosition = 0;

    try {
        for (int part = 1; filePosition < contentLength; part++) {
            partSize = Math.min(partSize, contentLength - filePosition);

            UploadPartRequest uploadRequest = new UploadPartRequest()
                    .withBucketName(getConfiguration().getBucketName()).withKey(keyName)
                    .withUploadId(initResponse.getUploadId()).withPartNumber(part).withFileOffset(filePosition)
                    .withFile(filePayload).withPartSize(partSize);

            LOG.trace("Uploading part [{}] for {}", part, keyName);
            partETags.add(getEndpoint().getS3Client().uploadPart(uploadRequest).getPartETag());

            filePosition += partSize;
        }
        CompleteMultipartUploadRequest compRequest = new CompleteMultipartUploadRequest(
                getConfiguration().getBucketName(), keyName, initResponse.getUploadId(), partETags);

        uploadResult = getEndpoint().getS3Client().completeMultipartUpload(compRequest);

    } catch (Exception e) {
        getEndpoint().getS3Client().abortMultipartUpload(new AbortMultipartUploadRequest(
                getConfiguration().getBucketName(), keyName, initResponse.getUploadId()));
        throw e;
    }

    Message message = getMessageForResponse(exchange);
    message.setHeader(S3Constants.E_TAG, uploadResult.getETag());
    if (uploadResult.getVersionId() != null) {
        message.setHeader(S3Constants.VERSION_ID, uploadResult.getVersionId());
    }

    if (getConfiguration().isDeleteAfterWrite() && filePayload != null) {
        FileUtil.deleteFile(filePayload);
    }
}

From source file:io.konig.camel.aws.s3.DeleteObjectProducer.java

License:Apache License

public void processSingleOp(final Exchange exchange) throws Exception {

    ObjectMetadata objectMetadata = determineMetadata(exchange);

    File filePayload = null;/*from  w  w w .j  ava2s .  c om*/
    InputStream is = null;
    ByteArrayOutputStream baos = null;
    Object obj = exchange.getIn().getMandatoryBody();
    PutObjectRequest putObjectRequest = null;
    // Need to check if the message body is WrappedFile
    if (obj instanceof WrappedFile) {
        obj = ((WrappedFile<?>) obj).getFile();
    }
    if (obj instanceof File) {
        filePayload = (File) obj;
        is = new FileInputStream(filePayload);
    } else {
        is = exchange.getIn().getMandatoryBody(InputStream.class);
        baos = determineLengthInputStream(is);
        objectMetadata.setContentLength(baos.size());
        is = new ByteArrayInputStream(baos.toByteArray());
    }

    putObjectRequest = new PutObjectRequest(getConfiguration().getBucketName(), determineKey(exchange), is,
            objectMetadata);

    String storageClass = determineStorageClass(exchange);
    if (storageClass != null) {
        putObjectRequest.setStorageClass(storageClass);
    }

    String cannedAcl = exchange.getIn().getHeader(S3Constants.CANNED_ACL, String.class);
    if (cannedAcl != null) {
        CannedAccessControlList objectAcl = CannedAccessControlList.valueOf(cannedAcl);
        putObjectRequest.setCannedAcl(objectAcl);
    }

    AccessControlList acl = exchange.getIn().getHeader(S3Constants.ACL, AccessControlList.class);
    if (acl != null) {
        // note: if cannedacl and acl are both specified the last one will
        // be used. refer to
        // PutObjectRequest#setAccessControlList for more details
        putObjectRequest.setAccessControlList(acl);
    }

    if (getConfiguration().isUseAwsKMS()) {
        SSEAwsKeyManagementParams keyManagementParams;
        if (ObjectHelper.isNotEmpty(getConfiguration().getAwsKMSKeyId())) {
            keyManagementParams = new SSEAwsKeyManagementParams(getConfiguration().getAwsKMSKeyId());
        } else {
            keyManagementParams = new SSEAwsKeyManagementParams();
        }
        putObjectRequest.setSSEAwsKeyManagementParams(keyManagementParams);
    }

    LOG.trace("Put object [{}] from exchange [{}]...", putObjectRequest, exchange);

    PutObjectResult putObjectResult = getEndpoint().getS3Client().putObject(putObjectRequest);

    LOG.trace("Received result [{}]", putObjectResult);

    Message message = getMessageForResponse(exchange);
    message.setHeader(S3Constants.E_TAG, putObjectResult.getETag());
    if (putObjectResult.getVersionId() != null) {
        message.setHeader(S3Constants.VERSION_ID, putObjectResult.getVersionId());
    }

    if (getConfiguration().isDeleteAfterWrite() && filePayload != null) {
        // close streams
        IOHelper.close(putObjectRequest.getInputStream());
        IOHelper.close(is);
        FileUtil.deleteFile(filePayload);
    }
}

From source file:io.milton.s3.service.AmazonStorageServiceImpl.java

License:Open Source License

@Override
public boolean putEntity(String bucketName, Entity entity, InputStream inputStream) {
    if (entity == null) {
        return false;
    }//from w  w w  . j a v  a2s .c  o m

    // Only store file in Amazon S3
    if (entity instanceof File) {
        String keyName = getAmazonS3UniqueKey(entity);

        // Additional metadata instructing Amazon S3 how to handle the
        // uploaded data (e.g. custom user metadata, hooks for specifying
        // content type, etc.).
        ObjectMetadata metadata = new ObjectMetadata();
        metadata.setContentType(((File) entity).getContentType());

        // Always set the content length, even if it's already set
        metadata.setContentLength(((File) entity).getSize());
        boolean isUploaded = amazonS3Manager.uploadEntity(bucketName, keyName, inputStream, metadata);
        if (!isUploaded) {
            return false;
        }
    }

    // Store folder as hierarchy in Amazon DynamoDB
    return dynamoDBManager.putEntity(bucketName, entity);
}

From source file:it.polimi.modaclouds.cpimlibrary.blobmng.AmazonBlobManager.java

License:Apache License

@Override
public void uploadBlob(byte[] file, String fileName) {
    System.out.println("uploadBlob " + fileName + ".");
    //System.out.println("Creating bucket " + bucketName + "\n");
    //s3.putObject(new PutObjectRequest(bucketName, name, input, metadata));
    ByteArrayInputStream is = new ByteArrayInputStream(file);
    ObjectMetadata omd = new ObjectMetadata();
    omd.setContentLength(file.length);
    PutObjectRequest pur = new PutObjectRequest(bucketName, fileName, is, omd);
    s3.putObject(pur);/*  w  w  w  .j a v a2 s .c om*/
}

From source file:jenkins.plugins.itemstorage.s3.S3BaseUploadCallable.java

License:Open Source License

protected ObjectMetadata buildMetadata(File file) throws IOException {
    final ObjectMetadata metadata = new ObjectMetadata();
    metadata.setContentType(Mimetypes.getInstance().getMimetype(file.getName()));
    metadata.setContentLength(file.length());
    metadata.setLastModified(new Date(file.lastModified()));

    if (storageClass != null && !storageClass.isEmpty()) {
        metadata.setHeader("x-amz-storage-class", storageClass);
    }/*from   w  w  w .  j  av a 2  s  . c  o m*/
    if (useServerSideEncryption) {
        metadata.setSSEAlgorithm(ObjectMetadata.AES_256_SERVER_SIDE_ENCRYPTION);
    }

    for (Map.Entry<String, String> entry : userMetadata.entrySet()) {
        final String key = entry.getKey().toLowerCase();
        switch (key) {
        case "cache-control":
            metadata.setCacheControl(entry.getValue());
            break;
        case "expires":
            try {
                final Date expires = new SimpleDateFormat("EEE, dd MMM yyyy HH:mm:ss z")
                        .parse(entry.getValue());
                metadata.setHttpExpiresDate(expires);
            } catch (ParseException e) {
                metadata.addUserMetadata(entry.getKey(), entry.getValue());
            }
            break;
        case "content-encoding":
            metadata.setContentEncoding(entry.getValue());
            break;
        case "content-type":
            metadata.setContentType(entry.getValue());
        default:
            metadata.addUserMetadata(entry.getKey(), entry.getValue());
            break;
        }
    }
    return metadata;
}

From source file:jp.co.tagbangers.jgroups.S3_CLIENT_PING.java

License:Apache License

@Override
protected void write(List<PingData> list, String clustername) {
    String filename = addressToFilename(local_addr);
    String key = sanitize(clustername) + "/" + sanitize(filename);
    try {//from w  w  w  . ja  va 2  s.  co m
        ByteArrayOutputStream out = new ByteArrayOutputStream(4096);
        write(list, out);
        byte[] data = out.toByteArray();

        ObjectMetadata meta = new ObjectMetadata();
        meta.setContentType("text/plain");
        meta.setContentLength(data.length);
        amazonS3.putObject(location, key, new ByteArrayInputStream(data), meta);
    } catch (Exception e) {
        log.error("Error marshalling object", e);
    }
}

From source file:localdomain.localhost.ProductImageUploadServlet.java

License:Apache License

@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response)
        throws ServletException, IOException {
    try {/*  ww  w.  j  av a2  s .c o  m*/
        String itemName = request.getParameter("productName");
        String credits = request.getParameter("imageCredits");

        InputStream is = request.getPart("imageFile").getInputStream();
        ObjectMetadata objectMetadata = new ObjectMetadata();
        objectMetadata.setContentLength(request.getPart("imageFile").getSize());
        objectMetadata.setContentType(request.getPart("imageFile").getContentType());
        objectMetadata.setCacheControl("public, max-age=" + TimeUnit.SECONDS.convert(365, TimeUnit.DAYS));

        String imageName = getFileNameFromHeader(request.getPart("imageFile").getHeader("content-disposition"));

        ServletContext context = request.getSession().getServletContext();
        AmazonS3Resources s3Resources = (AmazonS3Resources) context
                .getAttribute(AmazonS3Resources.class.getName());

        String imageUrl = s3Resources.uploadImage(is, objectMetadata, imageName);

        EntityManager em = emf.createEntityManager();

        em.getTransaction().begin();
        em.persist(new Product(itemName, imageUrl, credits));
        em.getTransaction().commit();

        response.sendRedirect(request.getContextPath() + "/product/list");
    } catch (Exception e) {
        request.setAttribute("throwable", e);
        request.getRequestDispatcher("/WEB-INF/jsp/products.jsp").forward(request, response);
    }

}

From source file:lumbermill.internal.aws.S3ClientImpl.java

License:Apache License

/**
 *
 *///from   ww  w  . j a va2s .c  o  m
public void put(T event, StringTemplate bucket, StringTemplate key) {
    ObjectMetadata metadata = new ObjectMetadata();
    ByteString raw = event.raw();
    metadata.setContentLength(raw.size());

    String sKey = key.format(event).get();
    String sBucket = bucket.format(event).get();

    LOGGER.trace("Uploading to s3://{}/{} with size {}", sBucket, sKey, metadata.getContentLength());
    s3Client.putObject(sBucket, sKey, new ByteArrayInputStream(raw.toByteArray()), metadata);
}

From source file:me.footlights.server.AmazonUploader.java

License:Apache License

/**
 * Upload file to Amazon S3, unless there's a reason not to:
 *  - invalid request//from w w  w. j  ava 2 s  .  co  m
 *  - not authorized
 *  - incorrect size
 * 
 * @return the name of the uploaded file (which is a fingerprint)
 */
@Override
public String upload(final Block block)
        throws AccessControlException, IOException, NoSuchAlgorithmException, RuntimeException {
    log.entering(AmazonUploader.class.getName(), "upload", block);

    if (!checkAuth(block.getAuthorization()))
        throw new AccessControlException("Authorization failure");

    // Does the actual fingerprint match the expected one (if any)?
    Fingerprint.Builder fingerprintBuilder = Fingerprint.newBuilder().setContent(block.getBytes());

    if (!block.getFingerprintAlgorithm().isEmpty())
        fingerprintBuilder.setAlgorithm(block.getFingerprintAlgorithm());

    final String actualName = fingerprintBuilder.build().encode();
    String expected = block.getExpectedName();
    if (!expected.isEmpty() && !expected.equals(actualName))
        throw new IllegalArgumentException("Block name (" + actualName + ") does not match expected name ("
                + block.getExpectedName() + ")");

    final ByteBuffer bytes = block.getBytes();

    final ObjectMetadata metadata = new ObjectMetadata();
    metadata.setContentLength(bytes.remaining());

    InputStream stream = new ByteArrayInputStream(bytes.array());

    try {
        s3.putObject(USER_DATA_BUCKET, actualName, stream, metadata);
        s3.setObjectAcl(USER_DATA_BUCKET, actualName, DEFAULT_ACL);
    } catch (AmazonClientException e) {
        throw new RuntimeException(e);
    }

    return actualName;
}

From source file:net.henryhu.roxlab2.NotePadProvider.java

License:Apache License

private int s3put(String key, ContentValues values) {
    Log.w("s3put()", "put with key: " + key);
    String sValues = contentValuesToString(values);

    byte[] bVals = null;
    try {// w w w . java  2 s  . c  om
        bVals = sValues.getBytes("UTF-8");
    } catch (Exception e) {
    }
    InputStream is = new ByteArrayInputStream(bVals);
    ObjectMetadata om = new ObjectMetadata();
    om.setContentLength(bVals.length);
    om.setContentType("text/plain");

    try {
        s3.putObject(bucketName, key, is, om);
        return 1;
    } catch (AmazonClientException e) {
        Log.w("s3put()", "Exception: " + e.toString() + " ; " + e.getMessage());

        return 0;
    }
}