Class AttachmentDownload

java.lang.Object
com.atlassian.confluence.servlet.download.ServeAfterTransactionDownload
com.atlassian.confluence.servlet.download.AttachmentDownload
All Implemented Interfaces:
com.atlassian.plugin.servlet.DownloadStrategy
Direct Known Subclasses:
ThumbnailDownload

public class AttachmentDownload extends ServeAfterTransactionDownload
  • Field Details

  • Constructor Details

    • AttachmentDownload

      public AttachmentDownload()
  • Method Details

    • matches

      public boolean matches(String urlPath)
    • setDownloadResourceManager

      public void setDownloadResourceManager(DownloadResourceManager downloadResourceManager)
    • setAttachmentUrlParser

      public void setAttachmentUrlParser(AttachmentUrlParser attachmentUrlParser)
    • setEventPublisher

      public void setEventPublisher(com.atlassian.event.api.EventPublisher eventPublisher)
    • getEventPublisher

      public com.atlassian.event.api.EventPublisher getEventPublisher()
    • setTokenGenerator

      public void setTokenGenerator(com.atlassian.struts.xsrf.XsrfTokenGenerator tokenGenerator)
    • getStreamForDownload

      public @Nullable InputStream getStreamForDownload(javax.servlet.http.HttpServletRequest httpServletRequest, javax.servlet.http.HttpServletResponse httpServletResponse) throws IOException
      Description copied from class: ServeAfterTransactionDownload
      Get the input stream to serve to the client outside of the database transaction. The inputstream must be useable outside of the database transaction that created it
      Specified by:
      getStreamForDownload in class ServeAfterTransactionDownload
      Returns:
      The input stream to serve, or null if nothing to serve.
      Throws:
      IOException
    • publishEvents

      protected void publishEvents(Attachment attachment, boolean download)
    • getUrlPrefix

      protected String getUrlPrefix()
    • setHeadersForAttachment

      protected void setHeadersForAttachment(InputStream contents, String name, long contentLength, String contentType, javax.servlet.http.HttpServletRequest httpServletRequest, javax.servlet.http.HttpServletResponse httpServletResponse) throws IOException
      Throws:
      IOException
    • setAttachmentSafeContentHeaderGuesser

      public void setAttachmentSafeContentHeaderGuesser(SafeContentHeaderGuesser attachmentSafeContentHeaderGuesser)
    • streamResponse

      protected void streamResponse(InputStream fromStream, OutputStream toStream) throws IOException
      Captures and publishes analytics about the attachment streaming.
      Overrides:
      streamResponse in class ServeAfterTransactionDownload
      Throws:
      IOException
      Since:
      7.12
    • getStreamingAnalyticsEventName

      protected Optional<String> getStreamingAnalyticsEventName()
      Since:
      7.12