public final class

FileAttachments

extends Object
java.lang.Object
   ↳ com.atlassian.jira.issue.attachment.FileAttachments

Class Overview

Contains utility methods for dealing with attachments on the file system. Currently the attachment structure is now ../ProjectKey/IssueBucket/IssueKey/attachmentID. The project key used will be the original project key used to store the attachment. The issue bucket is determined by what the issue number is, with the bucket sizes being 10,000.

Previous Versions of Attachment Storage: ../ProjectKey/IssueKey/attachmentID - This is the same as above with the project key the key that was used to store the attachment. This was changed due to the limitations in directory sizes when it came to the number of attachments in issues.

../ProjectKey/IssueKey/attachmentID_attachmentFileName - Again the project key is the key that was used to store the attachment.

../ProjectKey/IssueKey/attachmentID_?_attachmentFileName - There was a stage where thumbnails were stored within the folder and where the '?' is would say 'thumb'. This meant that searching for these files meant discounting thumbnail hits.

Summary

Public Methods
static String computeIssueBucketDir(String issueKey)
Returns the bucket number for an issue based of its key
static String computeIssueKeyForOriginalProjectKey(String originalProjectKey, String issueKey)
Helper method to mung an issue key to the given project key.
static File getAttachmentDirectoryForIssue(File rootDir, String originalProjectKey, String issueKey)
Returns the directory containing attachments for an issue.
@Deprecated static File getAttachmentFileHolder(AttachmentStore.AttachmentAdapter attachment, File attachmentDir)
This method is deprecated. we should be using getAttachmentFileHolder(AttachmentKey, java.io.File) once AttachmentStore is removed.
static File getAttachmentFileHolder(AttachmentKey attachment, File rootDir)
Returns a file that refers to an attachment specified by the given attachment key and the attachment root directory.
static File getDefaultAttachmentFileHolder(AttachmentKey attachment, File rootDir)
Returns a file that refers to the default location of an attachment specified by the given attachment key and the attachment root directory.
static File validateFileForAttachment(Attachment metaData, File file)
[Expand]
Inherited Methods
From class java.lang.Object

Public Methods

public static String computeIssueBucketDir (String issueKey)

Returns the bucket number for an issue based of its key

Parameters
issueKey The latest issue key
Returns
  • String containing the number bucket the issue will be placed in
Throws
IllegalArgumentException if the issueKey is not a valid JIRA issue key

public static String computeIssueKeyForOriginalProjectKey (String originalProjectKey, String issueKey)

Helper method to mung an issue key to the given project key.

Parameters
originalProjectKey The project key that the issue should be under.
issueKey The issue key to mung.
Returns
  • Munged issue key with the specified original project key as the issue prefix.

public static File getAttachmentDirectoryForIssue (File rootDir, String originalProjectKey, String issueKey)

Returns the directory containing attachments for an issue.

Parameters
rootDir The root directory of all attachments.
originalProjectKey The project key that was used to store the attachments (i.e. the original project key)
issueKey The issue key
Returns
  • The directory containing attachments for an issue.

@Deprecated public static File getAttachmentFileHolder (AttachmentStore.AttachmentAdapter attachment, File attachmentDir)

This method is deprecated.
we should be using getAttachmentFileHolder(AttachmentKey, java.io.File) once AttachmentStore is removed.

Returns a file that refers to an attachment specified by the given attachment key and the attachment root directory.

Parameters
attachment The attachment adapter
attachmentDir The directory of issue's attachments. NOT THE ROOT DIRECTORY FOR ALL ATTACHMENTS.
Returns
  • a file that refers to an attachment specified by the given attachment key and the attachment root directory.

public static File getAttachmentFileHolder (AttachmentKey attachment, File rootDir)

Returns a file that refers to an attachment specified by the given attachment key and the attachment root directory.

Parameters
attachment The attachment key.
rootDir The root directory of all attachments. NOT THE DIRECTORY FOR AN ISSUE'S ATTACHMENT.
Returns
  • a file that refers to an attachment specified by the given attachment key and the attachment root directory.

public static File getDefaultAttachmentFileHolder (AttachmentKey attachment, File rootDir)

Returns a file that refers to the default location of an attachment specified by the given attachment key and the attachment root directory.

Parameters
attachment The attachment key.
rootDir The root directory of all attachments. NOT THE DIRECTORY FOR AN ISSUE'S ATTACHMENT.
Returns
  • a file that refers to the default location of an attachment specified by the given attachment key and the attachment root directory.

public static File validateFileForAttachment (Attachment metaData, File file)