List of usage examples for com.amazonaws.services.s3.model ObjectMetadata setContentLength
public void setContentLength(long contentLength)
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; } }