LoginSignup
6
5

More than 5 years have passed since last update.

【Gulp】gulp-s3-uploadプラグインで静的コンテンツをAmazon S3へ転送する

Last updated at Posted at 2015-03-04

概要

フロントエンドのタスクランナーであるgulpの「gulp-s3-upload」プラグインを使い、フォルダへのファイル追加を監視して、Amazon S3にリソースを自動転送します。
単純に静的リソースを動的コンテンツと切り離して、全てAmazon S3に格納しようという魂胆で試しました。
ここではやってませんが、抱き合わせでクライアントPCでGulpで画像の最適化タスクを実施するのが理想だと思います。

準備・必要なもの

・AWSアカウント
・Amazon S3バケット(バケット名)
・Amazon S3を操作できる権限を持ったIAMアカウント
(IAMアカウントのキーとシークレットキー)

※バケットとIAMアカウントの設定方法は割愛します

gulp諸々の準備

プロジェクトの作業ディレクトリに移動してお決まりのコマンド


npm init

続いてgulpをインストール


npm install gulp --save-dev

プラグインのインストール

「gulp-s3-upload」というプラグインと、フィイル更新監視用に「gulp-watch」プラグインをインストールします。

gulp-s3-upload
gulp-watch


npm install --save-dev gulp-s3-upload gulp-watch

ファイル構成

スクリーンショット 2015-03-04 14.43.19.png

このサンプルでは「resource」に追加されたファイルをuploadさせます。

glupタスクを作る

glupfile.js

var gulp = require('gulp');
var s3 = require('gulp-s3-upload')({
  /*IAMアカウントのキーとシークレットキー*/
  accessKeyId:"********",
  secretAccessKey:"******************"
});

gulp.task("upload", function() {
  gulp.src("./resource/**")
    .pipe(s3({
      /*バケット名*/
      Bucket:'******',
      ACL:'public-read'
    }))
  ;
});

gulp.task('watch', function(){
  gulp.watch('./resource/**',['upload']);
});

実行


gulp watch

画像を「resource」フォルダに追加すると

スクリーンショット 2015-03-04 17.12.21.png

バケットの中を確認

スクリーンショット 2015-03-04 17.12.49.png

以上です。

6
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
5