public void closeStream() throws IOException { if (payload != null) { payload.close(); payload = null; } }
public CloudFilesObject(final String basePath, final File file, final String region, final String container) { this(region, container); ByteSource byteSource = Files.asByteSource(file); this.payload = Payloads.newByteSourcePayload(byteSource); this.path = CloudFilesUtils.buildCloudFilesPath(basePath, file.getName()); }
public InputStream openStream(long start) throws IOException { payload = (payload == null) ? objectApi.get(path, start).getPayload() : payload; try { return payload.openStream(); } catch (IOException e) { if (CloudFilesUtils.CLOUDFILESRETRY.apply(e)) { throw new IOException("Recoverable exception", e); } throw Throwables.propagate(e); } } }
@Override public String putBlob(String containerName, Blob blob, PutOptions options) { long length; try (InputStream is = blob.getPayload().openStream()) { length = ByteStreams.copy(is, ByteStreams.nullOutputStream()); } catch (IOException ioe) { throw new RuntimeException(ioe); } byte[] array = Longs.toByteArray(length); ByteSourcePayload payload = new ByteSourcePayload( ByteSource.wrap(array)); payload.setContentMetadata(blob.getPayload().getContentMetadata()); payload.getContentMetadata().setContentLength((long) array.length); payload.getContentMetadata().setContentMD5((HashCode) null); blob.setPayload(payload); return super.putBlob(containerName, blob, options); }
public static void copy(ContentMetadata fromMd, MutableContentMetadata toMd) { toMd.setContentLength(fromMd.getContentLength()); toMd.setContentMD5(fromMd.getContentMD5()); toMd.setContentType(fromMd.getContentType()); toMd.setContentDisposition(fromMd.getContentDisposition()); toMd.setContentEncoding(fromMd.getContentEncoding()); toMd.setContentLanguage(fromMd.getContentLanguage()); toMd.setExpires(fromMd.getExpires()); }
public static Payload payloadFromStringWithContentType(String payload, String contentType) { Payload p = Payloads.newStringPayload(payload); p.getContentMetadata().setContentType(contentType); return p; }
public static Payload stringPayload(String json) { Payload p = Payloads.newPayload(json); p.getContentMetadata().setContentType(APPLICATION_JSON); return p; }
public String call() throws Exception { Blob blob = store.getBlob(container, name); Payload payload = blob.getPayload(); InputStream is = payload.getInput(); File tempFile = new File(downloadDir, name + ".tmp"); Timer.Context downloadContext = downloadTimer.time(); try { long read = 0; long length = payload.getContentMetadata().getContentLength(); OutputStream out = new FileOutputStream(tempFile, false); byte[] buf = new byte[BUF_SIZE]; tempFile.delete(); } finally { payload.release(); downloadContext.stop();
@Override public PayloadBlobBuilder contentType(String contentType) { payload.getContentMetadata().setContentType(contentType); return this; }
@Override public PayloadBlobBuilder contentLength(long contentLength) { payload.getContentMetadata().setContentLength(contentLength); return this; }
@Override public PayloadBlobBuilder contentMD5(byte[] md5) { payload.getContentMetadata().setContentMD5(md5); return this; }
@Override public PayloadBlobBuilder contentDisposition(String contentDisposition) { payload.getContentMetadata().setContentDisposition(contentDisposition); return this; }
@Override public PayloadBlobBuilder contentEncoding(String contentEncoding) { payload.getContentMetadata().setContentEncoding(contentEncoding); return this; }
@Override public PayloadBlobBuilder expires(Date expires) { payload.getContentMetadata().setExpires(expires); return this; }
addResponseHeaderWithOverride(request, response, HttpHeaders.CACHE_CONTROL, "response-cache-control", contentMetadata.getCacheControl()); addResponseHeaderWithOverride(request, response, HttpHeaders.CONTENT_ENCODING, "response-content-encoding", contentMetadata.getContentEncoding()); addResponseHeaderWithOverride(request, response, HttpHeaders.CONTENT_LANGUAGE, "response-content-language", contentMetadata.getContentLanguage()); addResponseHeaderWithOverride(request, response, HttpHeaders.CONTENT_DISPOSITION, "response-content-disposition", contentMetadata.getContentDisposition()); response.addHeader(HttpHeaders.CONTENT_LENGTH, contentMetadata.getContentLength().toString()); String overrideContentType = request.getParameter( "response-content-type"); response.setContentType(overrideContentType != null ? overrideContentType : contentMetadata.getContentType()); String eTag = metadata.getETag(); if (eTag != null) { response.addHeader(HttpHeaders.EXPIRES, overrideExpires); } else { Date expires = contentMetadata.getExpires(); if (expires != null) { response.addDateHeader(HttpHeaders.EXPIRES, expires.getTime());
ContentMetadataBuilder.create(); ImmutableMap.Builder<String, String> userMetadata = ImmutableMap.builder(); if (headerName.equalsIgnoreCase( HttpHeaders.CACHE_CONTROL)) { contentMetadata.cacheControl(headerValue); } else if (headerName.equalsIgnoreCase( HttpHeaders.CONTENT_DISPOSITION)) { contentMetadata.contentDisposition(headerValue); } else if (headerName.equalsIgnoreCase( HttpHeaders.CONTENT_ENCODING)) { contentMetadata.contentEncoding(headerValue); } else if (headerName.equalsIgnoreCase( HttpHeaders.CONTENT_LANGUAGE)) { contentMetadata.contentLanguage(headerValue); } else if (headerName.equalsIgnoreCase( HttpHeaders.CONTENT_TYPE)) { contentMetadata.contentType(headerValue); } else if (startsWithIgnoreCase(headerName, USER_METADATA_PREFIX)) { options.contentMetadata(contentMetadata.build()); options.userMetadata(userMetadata.build());
@Override public MultipartPart uploadMultipartPart(MultipartUpload mpu, int partNumber, Payload payload) { long length; try (InputStream is = payload.openStream()) { length = ByteStreams.copy(is, ByteStreams.nullOutputStream()); } catch (IOException ioe) { throw new RuntimeException(ioe); } byte[] array = Longs.toByteArray(length); ByteSourcePayload newPayload = new ByteSourcePayload( ByteSource.wrap(array)); newPayload.setContentMetadata(payload.getContentMetadata()); newPayload.getContentMetadata().setContentLength((long) array.length); newPayload.getContentMetadata().setContentMD5((HashCode) null); MultipartPart part = super.uploadMultipartPart(mpu, partNumber, newPayload); return MultipartPart.create(part.partNumber(), length, part.partETag(), part.lastModified()); }
tempFile.deleteOnExit(); fop = new FileOutputStream(tempFile); InputStream is = blob.getPayload().openStream(); IOUtils.copyLarge(is, fop); return tempFile;
@Override @Nullable public Blob getBlob(String container, String name, GetOptions options) { Blob blob = super.getBlob(container, name, options); if (blob == null) { return null; } byte[] array; try (InputStream is = blob.getPayload().openStream()) { array = ByteStreams.toByteArray(is); } catch (IOException ioe) { throw new RuntimeException(ioe); } long length = Longs.fromByteArray(array); ByteSourcePayload payload = new ByteSourcePayload( new NullByteSource().slice(0, length)); payload.setContentMetadata(blob.getPayload().getContentMetadata()); payload.getContentMetadata().setContentLength(length); payload.getContentMetadata().setContentMD5((HashCode) null); blob.setPayload(payload); return blob; }
try (InputStream is = blob.getPayload().openStream(); OutputStream os = response.getOutputStream()) { ByteStreams.copy(is, os);