2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

curlコマンドを使って、ストレージサービスにファイルをアップロードしたい

Last updated at Posted at 2018-08-13

はじめに

クラウドのストレージサービス(s3とかBlobとか)に、ファイル転送したいなって時がたまにあります。
しかも日付でディレクトリ分けられると、なお嬉しい的なこともしばしば。

既に同じようなスクリプトは多く出回っているのですとは思うのですが、
必要なだなぁーと思う時は、大体 忘れてしまっており、その都度調べて作るということが多々あったため、
個人用のテンプレート的なものを置いておこうと思いました。

ということで、早速サンプルスクリプト

適宜、ファイル名やアクセスキーなどを変更したら使えるかと思います。

curl_upload.sh
#!/bin/bash

file="FILE_NAME"
bucket="BUCKET__NAME"
subdir=`date +%Y%m%d`

resource="/${bucket}/${subdir}/${file}"
contentType="text/plain"
date="$(LC_ALL=C date -u +"%a, %d %b %Y %X %z")"

accessKey="ACCESS_KEY"
secretKey="SECRET_KEY"

# s3の場合は、endpointは無くても良いかも(その時の環境に合わせて使用する)
endpoint="https://STORAGE_PROXY_ADDRESS"

stringToSign="PUT\n\n${contentType}\n${date}\n${resource}"
signature=`echo -en ${stringToSign} | openssl sha1 -hmac ${secretKey} -binary | base64`

curl -k -X PUT -T "${file}" \
  -H "Host: ${endpoint}" \
  -H "Date: ${date}" \
  -H "Content-Type: ${contentType}" \
  -H "Authorization: AWS ${accessKey}:${signature}" \
  https://${endpoint}/${bucket}/${subdir}/${file} -v

最近は、様々なストレージサービスがあるので、うまいこと利用できれば幸いです。

2
1
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
2
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?