Amazon S3 是付費的網路磁碟服務, 而且可以透過 Web 直接將檔案拉下來, 沒有最低消費, 用多少收多少, 單純做備份, 收費算是蠻便宜的, 有興趣可以用 Amazon Web Services Simple Monthly Calculator 算算看(我算自己的資料備份, 一個月下來應該不用 $100 台幣).
方便操作 Amazon S3 的工具
- S3Fox Organizer for Amazon (S3Fox) - Firefox addones 但是用這個要注意, 特別是有目錄在 List 時, 等於是有多少檔案, 會查詢多少次, 但是可用於驗證檔案是否有丟上去等等.
- s3cmd - Python 寫的 Amazon S3 client, 詳細介紹可見: s3cmd (Amazon S3 CLI)
- php-aws - Google Code - PHP 存取 Amazon S3 的 class, 可以輕鬆寫存取程式. (要抓取程式: svn checkout http://php-aws.googlecode.com/svn/trunk/), 註: 現在移到: tylerhall/php-aws · GitHub - https://github.com/tylerhall/php-aws/
s3cmd 的使用:
- 申請完 Amazon S3 帳號後會拿到兩組 key,一組是 access_key,一組是 secret_key
- $ s3cmd --configure 設定 access_key 和 secret_key
- $ s3cmd mb s3://BUCKET_NAME (Create Bucket)
- $ s3cmd put /PATH/FILENAME s3://BUCKET_NAME/FILENAME (將檔案上傳到 Bucket 內)
- $ s3cmd del s3://BUCKET_NAME/FILENAME (刪除檔案)
要讓人可以下載, 使用 -P 的參數
- $ s3cmd put -P /PATH/FILENAME s3://BUCKET_NAME/FILENAME # 可公開下載
- 下載處會在: http://s3.amazonaws.com/BUCKET_NAME/FILENAME 或 http://BUCKET_NAME.s3.amazonaws.com/FILENAME
使用 php-aws 寫的簡易 Script
- 程式詳見: push-to-s3.phps
- class.s3.php 取自 svn checkout http://php-aws.googlecode.com/svn/trunk/
- 修改此檔案中的 define 參數, 就可以 push-to-s3.php abc.tgz 操作(再簡易修改即可於網頁上傳資料時, 順便多傳一份去備份或取用)
- 何謂 Bucket 和 Object, 意思就是這樣: http://s3.amazonaws.com/$bucket/$object
關於 Amazon S3 的其它應用
- Building a Small Business Backup System Using Amazon S3
- 設定 media.DOMAIN_NAME CNAME 成 media.DOMAIN_NAME.s3.amazonaws.com, 就可以 media.DOMAIN_NAME/FILENAME 直接存取, 詳細可見: Scalable Media Hosting with Amazon S3
- (這是拿Amazon S3 當自己的 Web server 來存取使用, 當然 資料傳輸費的錢還也是要付的)