@Override public long getContentLength() { return file.getLength(); }
/** * Returns {@code true} if the {@link Range} is applicable to file (file full closed range encloses passed in range). */ protected boolean isRequestedRangeSatisfiable(final StorageFileItem file, final Range<Long> range) { return Range.closed(0L, file.getLength()).encloses(range); }
@Override public void renderCollection(final HttpServletRequest request, final HttpServletResponse response, final StorageCollectionItem coll, final Collection<StorageItem> children) throws IOException { final Set<String> uniqueNames = Sets.newHashSetWithExpectedSize(children.size()); final List<CollectionEntry> entries = Lists.newArrayListWithCapacity(children.size()); final String collUrl = request.getRequestURL().toString(); for (StorageItem child : children) { if (child.isVirtual() || !child.getRepositoryItemUid().getBooleanAttributeValue(IsHiddenAttribute.class)) { if (!uniqueNames.contains(child.getName())) { final boolean isCollection = child instanceof StorageCollectionItem; final String name = isCollection ? child.getName() + "/" : child.getName(); final CollectionEntry entry = new CollectionEntry(name, isCollection, collUrl + name, new Date(child.getModified()), StorageFileItem.class.isAssignableFrom(child .getClass()) ? ((StorageFileItem) child).getLength() : -1, ""); entries.add(entry); uniqueNames.add(child.getName()); } } } Collections.sort(entries, new CollectionEntryComparator()); final Map<String, Object> dataModel = createBaseModel(coll.getResourceStoreRequest()); dataModel.put("requestPath", coll.getPath()); dataModel.put("listItems", entries); render(getTemplate("repositoryContentHtml.vm"), dataModel, response); }
if (file.getLength() != ContentLocator.UNKNOWN_LENGTH) { response.setHeader("Content-Length", String.valueOf(file.getLength())); final List<Range<Long>> ranges = getRequestedRanges(request, file.getLength()); response.setStatus(HttpServletResponse.SC_REQUESTED_RANGE_NOT_SATISFIABLE); response.setHeader("Content-Length", "0"); response.setHeader("Content-Range", "bytes */" + file.getLength()); return; response.setHeader("Content-Length", String.valueOf(bodySize)); response.setHeader("Content-Range", range.lowerEndpoint() + "-" + range.upperEndpoint() + "/" + file.getLength()); if (contentNeeded) { try (final InputStream in = file.getInputStream()) {
new InputStreamEntity( new InterruptableInputStream( fileItem.getInputStream() ), fileItem.getLength() );
public StorageFileItemRepresentation(StorageFileItem file) { super(MediaType.valueOf(file.getMimeType()), file); setSize(file.getLength()); if (file.getRepositoryItemAttributes().containsKey(DigestCalculatingInspector.DIGEST_SHA1_KEY)) { // Shield SHA1 // {SHA1{xxxx}} final String tag = String.format("{SHA1{%s}}", file.getRepositoryItemAttributes().get(DigestCalculatingInspector.DIGEST_SHA1_KEY)); setTag(new Tag(tag, false)); } if (file.getItemContext().containsKey(AbstractResourceStoreContentPlexusResource.OVERRIDE_FILENAME_KEY)) { String filename = file.getItemContext().get(AbstractResourceStoreContentPlexusResource.OVERRIDE_FILENAME_KEY).toString(); setDownloadable(true); setDownloadName(filename); } }
method.setRequestEntity( new InputStreamRequestEntity( fItem.getInputStream(), fItem.getLength(), fItem.getMimeType() ) );
final ContentLocator content = new PreparedContentLocator(((StorageFileItem) remoteMirrorsItem).getInputStream(), "text/xml", remoteMirrorsItem.getLength()); mirrorsItem = new DefaultStorageFileItem(this, new ResourceStoreRequest(PRIVATE_MIRRORS_PATH),
StorageFileItem.class.isAssignableFrom(child.getClass()) ? ((StorageFileItem) child).getLength() : -1);
public StorageFileItemRepresentation( StorageFileItem file ) { super( MediaType.valueOf( file.getMimeType() ), file ); setSize( file.getLength() ); if ( file.getRepositoryItemAttributes().containsKey( DigestCalculatingInspector.DIGEST_SHA1_KEY ) ) { // Shield SHA1 // {SHA1{xxxx}} final String tag = String.format( "{SHA1{%s}}", file.getRepositoryItemAttributes().get( DigestCalculatingInspector.DIGEST_SHA1_KEY ) ); setTag( new Tag( tag, false ) ); } if ( file.getItemContext().containsKey( AbstractResourceStoreContentPlexusResource.OVERRIDE_FILENAME_KEY ) ) { String filename = file.getItemContext().get( AbstractResourceStoreContentPlexusResource.OVERRIDE_FILENAME_KEY ).toString(); setDownloadable( true ); setDownloadName( filename ); } }
resource.setSizeOnDisk( StorageFileItem.class.isAssignableFrom( child.getClass() ) ? ( (StorageFileItem) child ).getLength() : -1 );
if ( attributeItem.getLength() == 0 )
resource.setSha1Hash( checksum ); resource.setLastChanged( fileItem.getModified() ); resource.setSize( fileItem.getLength() ); resource.setUploaded( fileItem.getCreated() ); resource.setUploader( fileItem.getAttributes().get( AccessManager.REQUEST_USER ) );
resource.setSha1Hash(checksum); resource.setLastChanged(fileItem.getModified()); resource.setSize(fileItem.getLength()); resource.setUploaded(fileItem.getCreated()); resource.setUploader(fileItem.getRepositoryItemAttributes().get(AccessManager.REQUEST_USER));