public class

FileSystemAttachmentDirectoryAccessor

extends Object
implements AttachmentDirectoryAccessor
java.lang.Object
   ↳ com.atlassian.jira.issue.attachment.FileSystemAttachmentDirectoryAccessor

Class Overview

Implementation of the AttachmentDirectoryAccessor that deals with filesystem-based attachment storage.

Summary

Fields
protected final ProjectManager projectManager
Public Constructors
FileSystemAttachmentDirectoryAccessor(ProjectManager projectManager, AttachmentPathManager attachmentPathManager)
Public Methods
void checkValidAttachmentDirectory(Issue issue)
Checks that the Attachment directory of the given issue is right to go - writable, accessible etc.
void checkValidTemporaryAttachmentDirectory()
Checks that the temporary directory where attachments can be uploaded is writeable.
Option<ErrorCollection> errors()
Checks that the attachment root directory and the temporary attachment directories exist and are writeable.
@Nullable File getAttachmentDirectory(String issueKey)
File getAttachmentDirectory(Issue issue)
Returns the physical directory of the attachments for the given issue.
File getAttachmentDirectory(String attachmentDirectory, String projectKey, String issueKey)
Get the attachment directory for the given attachment base directory, project key, and issue key.
File getAttachmentDirectory(Issue issue, boolean createDirectory)
Returns the physical directory of the attachments for the given issue.
File getAttachmentRootPath()
Returns the path used to store all attachments across the system.
File getTemporaryAttachmentDirectory()
@Nonnull File getThumbnailDirectory(Issue issue)
Returns the physical directory of the thumbnails for the given issue, creating if necessary.
@Nonnull File getThumbnailDirectory(Issue issue, boolean createDirectory)
Returns the physical directory of the thumbnails for the given issue, creating if desired.
[Expand]
Inherited Methods
From class java.lang.Object
From interface com.atlassian.jira.issue.attachment.AttachmentDirectoryAccessor
From interface com.atlassian.jira.issue.attachment.AttachmentHealth

Fields

protected final ProjectManager projectManager

Public Constructors

public FileSystemAttachmentDirectoryAccessor (ProjectManager projectManager, AttachmentPathManager attachmentPathManager)

Public Methods

public void checkValidAttachmentDirectory (Issue issue)

Checks that the Attachment directory of the given issue is right to go - writable, accessible etc. Will create it if necessary.

Parameters
issue the issue whose attachment directory to check.
Throws
AttachmentException if the directory is not writable or missing and cannot be created.

public void checkValidTemporaryAttachmentDirectory ()

Checks that the temporary directory where attachments can be uploaded is writeable.

public Option<ErrorCollection> errors ()

Checks that the attachment root directory and the temporary attachment directories exist and are writeable.

Returns
  • An option of an error collection that contains error messages if there are any issues. The option will be none if there are no errors.

@Nullable public File getAttachmentDirectory (String issueKey)

public File getAttachmentDirectory (Issue issue)

Returns the physical directory of the attachments for the given issue. This will create it if necessary.

Parameters
issue the issue whose attachment directory you want (required)
Returns
  • The issue's attachment directory.

public File getAttachmentDirectory (String attachmentDirectory, String projectKey, String issueKey)

Get the attachment directory for the given attachment base directory, project key, and issue key.

The idea is to encapsulate all of the path-joinery magic to make future refactoring easier if we ever decide to move away from attachment-base/project-key/issue-ket

Parameters
attachmentDirectory base of attachments
projectKey the project key the issue belongs to
issueKey the issue key for the issue
Returns
  • the directory attachments for this issue live in

public File getAttachmentDirectory (Issue issue, boolean createDirectory)

Returns the physical directory of the attachments for the given issue. This will create it if necessary.

Parameters
issue the issue whose attachment directory you want
createDirectory If true, and the directory does not currently exist, then the directory is created.
Returns
  • The issue's attachment directory.

public File getAttachmentRootPath ()

Returns the path used to store all attachments across the system.

Returns
  • the path used to store all attachments across the system.

public File getTemporaryAttachmentDirectory ()

@Nonnull public File getThumbnailDirectory (Issue issue)

Returns the physical directory of the thumbnails for the given issue, creating if necessary.

Parameters
issue the issue whose thumbnail directory you want
Returns
  • The issue's thumbnail directory.

@Nonnull public File getThumbnailDirectory (Issue issue, boolean createDirectory)

Returns the physical directory of the thumbnails for the given issue, creating if desired.

Parameters
issue the issue whose thumbnail directory you want
createDirectory If true, and the directory does not currently exist, then the directory is created.
Returns
  • The issue's thumbnail directory.