serverless-client-s3を利用してS3にファイルを転送する
プラグイン導入
READMEにはnpm installが記載されていますがその通りに実行した場合
古いパッケージが取得されてデプロイすると以下のエラーが発生します
Serverless plugin "serverless-client-s3" initialization errored: S.getServerlessPath is not a function
この問題は2018/4/1時点の事象になります。そのうち修正はされると思いますが
今回はGithubからインストールすることにします
npm install --save git://github.com/serverless/serverless-client-s3.git
試してみる
プラグインがインストールできたら実際に試してみます
serverless.yml
service: serverless-client-s3-test plugins: - serverless-client-s3 custom: client: bucketName: Bucket Name provider: name: aws region: ap-northeast-1 stage: dev resources: Resources: S3: Type: AWS::S3::Bucket Properties: BucketName: ${self:custom.client.bucketName}
また、serverless.ymlと同階層にclient/dist/フォルダを作成し
その中に転送対象の資材を格納します。
格納したらデプロイ&S3への格納処理を実施する
serverless deploy serverless client deploy
これでS3に資材が格納されました
フォルダ名を変更したい場合は、distributionFolderを設定することで変更可能です。
serverless.yml
custom: client: bucketName: Bucket Name # client/test/ # distributionFolder: test # test/ # distributionFolder: ../test
ファイルを削除したい場合はフォルダ内のファイルを削除して
再度serverless client deployを実行すると削除されます