[Rt-commit] rt branch, 4.4/externalstorage-backend-key, created. rt-4.4.1-112-gc817908
Shawn Moore
shawn at bestpractical.com
Thu Sep 15 16:31:33 EDT 2016
The branch, 4.4/externalstorage-backend-key has been created
at c8179084f3febe5dfe4b9bfa1ce165484deb4a77 (commit)
- Log -----------------------------------------------------------------
commit c8179084f3febe5dfe4b9bfa1ce165484deb4a77
Author: Shawn M Moore <shawn at bestpractical.com>
Date: Thu Sep 15 16:29:54 2016 -0400
Store backend-specific keys in the attachment
This enables storage engines to store/retrieve files by methods other than
SHA256 of content
See rt-extension-externalstorage e6b72fc85c9b070e02c74458c5470871b70012e1
diff --git a/lib/RT/ExternalStorage/AmazonS3.pm b/lib/RT/ExternalStorage/AmazonS3.pm
index 1ded7a1..5f9bca0 100644
--- a/lib/RT/ExternalStorage/AmazonS3.pm
+++ b/lib/RT/ExternalStorage/AmazonS3.pm
@@ -144,13 +144,13 @@ sub Store {
my ($sha, $content) = @_;
# No-op if the path exists already
- return (1) if $self->BucketObj->head_key( $sha );
+ return ($sha) if $self->BucketObj->head_key( $sha );
$self->BucketObj->add_key(
$sha => $content
) or return (undef, "Failed to write to AmazonS3: " . $self->S3->errstr);
- return (1);
+ return ($sha);
}
sub DownloadURLFor {
diff --git a/lib/RT/ExternalStorage/Disk.pm b/lib/RT/ExternalStorage/Disk.pm
index 60046fe..3a78c47 100644
--- a/lib/RT/ExternalStorage/Disk.pm
+++ b/lib/RT/ExternalStorage/Disk.pm
@@ -111,7 +111,7 @@ sub Store {
my $dir = $self->Path . "/$1/$2";
my $path = "$dir/$3";
- return (1) if -f $path;
+ return ($sha) if -f $path;
File::Path::make_path($dir, {error => \my $err});
return (undef, "Making directory failed") if @{$err};
@@ -120,7 +120,7 @@ sub Store {
print $fh $content or return (undef, "Cannot write file to disk: $!");
close $fh or return (undef, "Cannot write file to disk: $!");
- return (1);
+ return ($sha);
}
sub DownloadURLFor {
diff --git a/lib/RT/ExternalStorage/Dropbox.pm b/lib/RT/ExternalStorage/Dropbox.pm
index 58aeea4..29d243c 100644
--- a/lib/RT/ExternalStorage/Dropbox.pm
+++ b/lib/RT/ExternalStorage/Dropbox.pm
@@ -124,7 +124,7 @@ sub Store {
my $dropbox = $self->Dropbox;
# No-op if the path exists already. This forces a metadata read.
- return (1) if open( $dropbox, "<", $sha);
+ return ($sha) if open( $dropbox, "<", $sha);
open( $dropbox, ">", $sha )
or return (undef, "Open for write on dropbox failed: $!");
@@ -133,7 +133,7 @@ sub Store {
close $dropbox
or return (undef, "Flush to dropbox failed: $!");
- return (1);
+ return ($sha);
}
sub DownloadURLFor {
diff --git a/sbin/rt-externalize-attachments.in b/sbin/rt-externalize-attachments.in
index 9782347..4c0ecd4 100644
--- a/sbin/rt-externalize-attachments.in
+++ b/sbin/rt-externalize-attachments.in
@@ -189,10 +189,9 @@ RT->System->SetAttribute( Name => "ExternalStorage", Content => $last );
sub Store {
my $content = shift;
- my $key = Digest::SHA::sha256_hex( $content );
- my ($ok, $msg) = $ExternalStorage->Store( $key => $content );
- return ($ok, $msg) unless defined $ok;
-
+ my $sha = Digest::SHA::sha256_hex( $content );
+ my ($key, $msg) = $ExternalStorage->Store( $key => $content );
+ return ($key, $msg) unless defined $ok;
return ($key);
}
-----------------------------------------------------------------------
More information about the rt-commit
mailing list