画像をアップロードする手軽なスクリプト
投稿日: 2022-07-31 日
オブジェクトストレージに画像をアップロードする便利スクリプトを書いたので公開します。 アップロードするときに画像の向きの修正とメタデータの削除をしています。
mktemp
とか使って一時ファイルを作成していない雑な実装なので流用する場合には注意してください。
なお、ここでスクリプトを公開するときの著作者の名前は TojoQK とすることにしました。
#!/usr/bin/env bash # upload-diary-image # # Copyright (C) 2022 TojoQK <tojoqk@tojo.tokyo> # # This software is released under the MIT License. # http://opensource.org/licenses/mit-license.php set -euo pipefail s3prefix="<s3のURL>" filename= while getopts f: opt do case "${opt}" in f) filename=${OPTARG};; esac done shift $((OPTIND - 1)) name="$1.jpg" # ファイル名が指定されていない場合はクリップボードからアップロードする if [ -z "$filename" ] then targets="$(xclip -selection clipboard -t TARGETS -o)" if [ -n "$(grep 'image/jpeg' <<< "$targets")" ] then filename=/tmp/clipboard.jpg xclip -selection clipboard -t image/jpeg -o > "$filename" else echo クリップボードに画像が保存されていません 1>&2 exit 1 fi fi prefix="$(date '+%Y-%m-%d/%H%M-')" s3url="s3://$s3prefix/$prefix$name" convert -auto-orient -strip "$filename" "/tmp/uploadimage.jpg" echo "確認してください" display "/tmp/uploadimage.jpg" echo -n "公開されるけどアップロードしていい?(yes/no): " read line echo "[$line]" if [ "$line" != "yes" ] then echo "アップロードを中断しました" exit 0; fi aws s3 cp --acl public-read --endpoint-url https://ewr1.vultrobjects.com "/tmp/uploadimage.jpg" "$s3url"