Quantcast
Channel: Vimタグが付けられた新着記事 - Qiita
Viewing all articles
Browse latest Browse all 5608

さくらのクラウドのオブジェクトストレージを Vim プラグインから使う

$
0
0

さくらのクラウドのオブジェクトストレージについて

さくらのクラウドではオブジェクトストレージを提供しています。

上記リンクに記載のとおり、さくらのクラウドのオブジェクトストレージは、Amazon S3 互換の API を備えています。
拙作で恐縮ですが、Vim から s3cmdを操作するプラグインを開発しましたので、

blp1526/storage.vim

この Vim プラグインを利用してさくらのクラウドのオブジェクトストレージを使ってみたいと思います。
以下、さくらのクラウドで作成したサーバから Vim で作業をするという想定で手順を記載します。
画像は2016年12月4日現在のものとなります。

さくらのクラウドのオブジェクトストレージの作成手順

最初に、さくらのクラウドのホーム画面から「オブジェクトストレージ」に移動します。

cloud_home.jpg

次に、オブジェクトストレージのバケットを作成します。

create_bucket.jpg

最後に、s3cmd の設定で利用するため、バケットのアクセスキー ID とシークレットアクセスキーを控えておきます。

manage_bucket.jpg

さくらのクラウドからサーバの作成

今回は CentOS 7.2 でサーバを作成することにします。

create_centos7.jpg

サーバの作成の完了後、 ターミナルからの ssh もしくはさくらのクラウドのコンソールのタブからログインします。

server_console.jpg

s3cmd のインストールと設定

s3cmd コマンドのインストール

CentOS 7.2 であれば、/etc/yum.repos.d/に存在する下記ファイルの enabled を 1 に変更することで s3cmd がインストールできます。

epel.repo
[epel]
name=Extra Packages for Enterprise Linux 7 - $basearch
#baseurl=http://download.fedoraproject.org/pub/epel/7/$basearch
mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-7&arch=$basearch
failovermethod=priority
enabled=1

s3cmd と一緒に Vim もインストールしてしまいましょう。

# yum install s3cmd
# yum install vim

s3cmd の設定ファイルの作成

下記コマンドを実行してください。

# s3cmd --configure

様々な項目を対話的に入力しますが、最初に、先ほど控えておいたバケットのアクセスキー ID とシークレットアクセスキーを入力します。

  • Access Keyにはアクセスキー ID を入力
  • Secret Keyにはシークレットアクセスキーを入力

その他の項目はデフォルトで構いません。
また、Test access with supplied credentials? [Y/n]と、テストをするか確認されますが、nで問題ありません。
最後に確認される Save settings? [y/N]yを選択し、設定を保存します。
この時点で ~/.s3cfgというファイルが作成されます。

作成された .s3cfgファイルの編集

さくらのクラウドのオブジェクトストレージ用に、設定ファイルの下記の箇所を、コメントなしの箇所のように編集します。

# host_base = s3.amazonaws.com
host_base = b.sakurastorage.jp
# host_bucket = %(bucket)s.s3.amazonaws.com
host_bucket = %(bucket)s.b.sakurastorage.jp
# signature_v2 = False
signature_v2 = True

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

ここでは、blp1526/storage.vim の README.md の Installationに記載の、Vim プラグインマネージャを利用しない手順でプラグインをインストールしてみます。

# git clone https://github.com/blp1526/storage.vim.git ~/.vim/bundle/storage.vim

でリポジトリのクローン後、~/.vimrcファイルを作成し、下記を記載します。

set runtimepath^=~/.vim/bundle/storage.vim

また、こちらは任意ですが、下記を Vim 起動時に入力することによってヘルプタグファイルの作成も可能です。

:helptags ~/.vim/bundle/storage.vim/doc

Vim からの s3cmd の操作

それでは、実際に storage.vim を利用してみます。
仮に、今回作成したバケットに foo.mdというファイルを作成するとしましょう。
ターミナルから

# vim s3://bucket_name/foo.md

を入力します。
すると、

download: 's3://bucket_name/foo.md' -> '/tmp/xxxxxxx/0.md'  [1 of 1]
ERROR: S3 error: 404 (Object Not Found)

のように 404 が返ってくると思います。
先ほどバケットを作成したばかりでまだオブジェクトが作られていないので当然です。
ここで、適当な文章を入力し、:wで保存しますと、

"s3://bucket_name/foo.md" uploaded

と、uploadedという結果が返ってくると思います。
ここでいったん Vim を閉じまして、再度

# vim s3://bucket_name/foo.md

を実行しますと、先ほど保存した文章が表示されます。
また、

# vim s3://bucket_name/

と入力しますと、そのディレクトリに存在するディレクトリやファイルが Quickfix List として表示されます。

まとめ

Vim にはもともと Netrwという、scp などネットワークを通してファイルを扱うことができる機能が標準で備わっています。
Netrw を利用して

vim scp://hostname/path/to/file

と Vim を使う感覚で s3cmd を利用できますので、s3cmd を活用されている方には便利なのではないでしょうか。
以上、さくらインターネット Advent Calendar 2016、5日目の @blp1526からでした。


Viewing all articles
Browse latest Browse all 5608

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>