diff options
author | Joey Hess <joey@kodama.kitenet.net> | 2008-05-07 23:51:25 -0400 |
---|---|---|
committer | Joey Hess <joey@kodama.kitenet.net> | 2008-05-07 23:51:25 -0400 |
commit | 0850cde5a6a77898e6ae88173a34bc641414deb9 (patch) | |
tree | 4f24d6d61aee3f0539b2ab6f6d39b6d6093aacd6 | |
parent | be89d6749eca74a3cfe80a86fa8416e8c8a2367b (diff) |
implemented pruning, s3 support now complete-ish
-rw-r--r-- | IkiWiki/Plugin/amazon_s3.pm | 21 | ||||
-rw-r--r-- | debian/changelog | 2 |
2 files changed, 20 insertions, 3 deletions
diff --git a/IkiWiki/Plugin/amazon_s3.pm b/IkiWiki/Plugin/amazon_s3.pm index b5629eb4a..0613d4357 100644 --- a/IkiWiki/Plugin/amazon_s3.pm +++ b/IkiWiki/Plugin/amazon_s3.pm @@ -152,10 +152,25 @@ sub writefile ($$$;$$) { #{{{ sub prune ($) { #{{{ my $file=shift; - my $bucket=IkiWiki::Plugin::amazon_s3::getbucket(); - print STDERR "wrapped prune\n"; + # If a file in the destdir is being pruned, need to delete it out + # of S3 as well. + if ($file =~ /^\Q$config{destdir}\/\E(.*)/) { + my $key=$config{amazon_s3_prefix}.$1; + print STDERR "wrapped prune ($key)\n"; + my $bucket=IkiWiki::Plugin::amazon_s3::getbucket(); + my $res=$bucket->delete_key($key); + if ($res && $key=~/(^|\/)index.$config{htmlext}$/) { + # index.html special case: Delete other file too + $key=~s/index.$config{htmlext}$//; + $res=$bucket->delete_key($key); + } + if (! $res) { + error(gettext("Failed to delete file from S3: "). + $bucket->err.": ".$bucket->errstr."\n"); + } + } - return $IkiWiki::Plugin::amazon_s3::subs{'IkiWiki::writefile'}->($file); + return $IkiWiki::Plugin::amazon_s3::subs{'IkiWiki::prune'}->($file); } #}}} 1 diff --git a/debian/changelog b/debian/changelog index 3ff3f0087..118a0347d 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,5 +1,7 @@ ikiwiki (2.46) UNRELEASED; urgency=low + * amazon_s3: New plugin, which injects wiki pages into Amazon S3, allowing + ikiwiki to be used without a dedicated web server. * aggregate: Add support for web-based triggering of aggregation for people stuck on shared hosting without cron. (Sheesh.) Enabled via the `aggregate_webtrigger` configuration optiom. |