From 9e6a4ccfddab3fc90ac8ce63522047fe85aeefcd Mon Sep 17 00:00:00 2001 From: Joey Hess Date: Wed, 7 May 2008 23:15:43 -0400 Subject: [PATCH] amazon s3 support implemented and kinda working pruning not yet implemented, however --- Bundle/IkiWiki/Extras.pm | 1 + IkiWiki/Render.pm | 2 +- doc/ikiwiki.setup | 12 ++++++++++++ doc/plugins/amazon_s3.mdwn | 7 +++++++ docwiki.setup | 5 ++++- 5 files changed, 25 insertions(+), 2 deletions(-) diff --git a/Bundle/IkiWiki/Extras.pm b/Bundle/IkiWiki/Extras.pm index a9f737215..2c259f204 100644 --- a/Bundle/IkiWiki/Extras.pm +++ b/Bundle/IkiWiki/Extras.pm @@ -27,6 +27,7 @@ Text::Typography Text::Textile Text::WikiFormat XML::Feed +Net::Amazon::S3 =head1 AUTHOR diff --git a/IkiWiki/Render.pm b/IkiWiki/Render.pm index 959279fc8..8591731dc 100644 --- a/IkiWiki/Render.pm +++ b/IkiWiki/Render.pm @@ -214,7 +214,7 @@ sub render ($) { #{{{ if (link($srcfile, $config{destdir}."/".$file)) { return; } - # if hardlink fails, fall back top copying + # if hardlink fails, fall back to copying } my $srcfd=readfile($srcfile, 1, 1); diff --git a/doc/ikiwiki.setup b/doc/ikiwiki.setup index a151050e7..997dcd18e 100644 --- a/doc/ikiwiki.setup +++ b/doc/ikiwiki.setup @@ -171,4 +171,16 @@ use IkiWiki::Setup::Standard { # For use with the pinger plugin, how many seconds to wait before # timing out. #pinger_timeout => 15. + + # For use with the amazon S3 plugin, your public access key id. + #amazon_s3_key_id => 'XXXXXXXXXXXXXXXXXXXX', + # And a file holding your secret key. This file *must* not be + # readable by others! + #amazon_s3_key_file => "/home/me/.hide/.s3_key + # The globally unique name of the bucket to use to store the wiki. + #amazon_s3_bucket => "mywiki", + # A prefix to prepend to each page name. + #amazon_s3_prefix => "wiki/", + # Uncomment to use the S3 European datacenter. + #amazon_s3_location => "EU", } diff --git a/doc/plugins/amazon_s3.mdwn b/doc/plugins/amazon_s3.mdwn index 855569b42..f1887d970 100644 --- a/doc/plugins/amazon_s3.mdwn +++ b/doc/plugins/amazon_s3.mdwn @@ -11,6 +11,11 @@ modules and an Amazon S3 account to use this plugin. ## configuration +Important note: You should seriously consider turning off `usedirs` before +enabling this plugin. If `usedirs` is enabled, every page has to be stored +in S3 *twice*, as "page/index.html" and as "page/". That will cost you +money and bandwidth. + This plugin uses the following settings in the setup file: * `amazon_s3_key_id` - Set to your public access key id. @@ -35,6 +40,8 @@ Likewise, you will probably want to set the `url` in the setup file. The url can use the `foo.s3.amazonaws.com` domain name, or another domain name that is a CNAME for it. +The `hardlink` config file setting is not compatible with this plugin. + ## data transfer notes If you run 'ikiwiki -setup my.setup' to force a rebuild of your wiki, the diff --git a/docwiki.setup b/docwiki.setup index 0a6a86678..bbe2d438a 100644 --- a/docwiki.setup +++ b/docwiki.setup @@ -15,5 +15,8 @@ use IkiWiki::Setup::Standard { syslog => 0, userdir => "users", usedirs => 0, - add_plugins => [qw{goodstuff version haiku polygen fortune}], + add_plugins => [qw{goodstuff version polygen fortune amazon_s3}], + amazon_s3_key_id => '08TJMT99S3510QHZEP82', + amazon_s3_bucket => 'ikiwiki-test', + amazon_s3_key_file => "/home/joey/.hide/aws_secret_access_key", } -- 2.32.0.93.g670b81a890