Files
request-tracker/README.S3

106 lines
3.7 KiB
Plaintext
Raw Permalink Normal View History

- update to 5.0.1: Database Changes + For MySQL and MariaDB, the default character set has been updated to utf8mb4 to accommodate more unicode characters including emojis. See README.MySQL and README.MariaDB for details. + The Id field in some tables is changed from INT to BIGINT to accommodate large RT systems that may hit the maximum number of ids. Because this change touches large RT tables like Transactions and Attachments, this upgrade step may take a while to run. + You also will need free disk space equal to the size of these tables while running because MySQL, MariaDB, and Postgres will create a temporary copy of the table while running. If you don't have sufficient space, it can cause this step to fail. Notable Changes + System configuration options can now be changed by SuperUsers via the web UI. File-based configuration options are still loaded. Changes made via the web UI take precedence over file-based options if both are set. + If you prefer to keep all configuration in files and disable editing in the web UI, set this option to 0: Set($ShowEditSystemConfig, 0); + The variables which alter the set of HTML elements allowed in HTML scrubbing have moved; they have been renamed, and are now found under RT::Interface::Web::Scrubber. + The articles interface on tickets has been simplified, now showing only a dropdown for selecting articles. This dropdown converts to an autocomplete box when the dropdown contains more than $DropdownMenuLimit items. + With this simplified interface, the "hotlist" feature is no longer needed as all articles in classes applied to a given queue are available in the dropdown/autocomplete field. To prevent articles in a class from appearing for a queue, you can unapply the class from that queue. OBS-URL: https://build.opensuse.org/package/show/devel:languages:perl/request-tracker?expand=0&rev=67
2021-04-13 16:33:18 +00:00
Setup
=====
In order to use the S3 storage type, you must grant RT access to your S3 account.
1. Log into Amazon S3, https://aws.amazon.com/s3/, as the account you wish
to store files under.
2. Navigate to "Security Credentials" under your account name in the menu bar.
3. Open the "Access Keys" pane.
4. Click "Create New Access Key".
5. Copy the provided values for Access Key ID and Secret Access Key into
your RT_SiteConfig.pm file:
Set(%ExternalStorage,
Type => 'AmazonS3',
AccessKeyId => '...', # Put Access Key ID between quotes
SecretAccessKey => '...', # Put Secret Access Key between quotes
Bucket => '...',
);
6. Set up a Bucket for RT to use. You can either create and configure it
in the S3 web interface, or let RT create one itself. Either way,
tell RT what bucket name to use in your RT_SiteConfig.pm file:
Set(%ExternalStorage,
Type => 'AmazonS3',
AccessKeyId => '...',
SecretAccessKey => '...',
Bucket => '...', # Put bucket name between quotes
);
7. You may specify a Host option in Set(%ExternalStorage, ...); to connect
to an endpoint other than Amazon::S3's default of s3.amazonaws.com.
Direct Linking
==============
This storage engine supports direct linking. This means that RT can link
directly to S3 when listing attachments, showing image previews, etc. This
relieves some bandwidth pressure from RT because ordinarily it would have to
download each attachment from S3 to be able to serve it.
To enable direct linking you must first make all content in your bucket
publicly viewable.
Beware that this could have serious implications for billing and privacy. RT
cannot enforce its access controls for content on S3. This is tempered somewhat
by the fact that users must be able to guess the SHA-256 digest of the file to
be able to access it. But there is nothing stopping someone from tweeting a URL
to a file hosted on your S3. These concerns do not arise when using an
RT-mediated link to S3, since RT uses an access key to upload to and download
from S3.
To make all content in an S3 bucket publicly viewable, navigate to the bucket
in the S3 web UI. Select the "Properties" tab and inside "Permissions" there is
a button to "Add bucket policy". Paste the following content in the provided
textbox:
{
"Version": "2008-10-17",
"Statement": [
{
"Sid": "AllowPublicRead",
"Effect": "Allow",
"Principal": {
"AWS": "*"
},
"Action": "s3:GetObject",
"Resource": "arn:aws:s3:::BUCKET/*"
}
]
}
Replace BUCKET with the bucket name that is used by your RT instance.
Finally, set $ExternalStorageDirectLink to 1 in your RT_SiteConfig.pm file:
Set($ExternalStorageDirectLink, 1);
TROUBLESHOOTING
===============
Issues Connecting to the Amazon Bucket
Here are some things to check if you receive errors connecting to Amazon S3.
* Double check all of the configuration parameters, including the bucket name.
Remember to restart the server after changing values for RT to load new
settings.
* If you manually created a bucket, make sure it is in your default region.
Trying to access a bucket in a different region may result in 400 errors.
* Check the permissions on the bucket and make sure they are sufficient for
the user RT is connecting as to upload and access files. If you are using
the direct link option, you will need to open permissions further for users
to access the attachment via the direct link.