20304


Elasticsearch の snapshot API を利用する際に、URL を指定することで、 Read-only
のレポジトリとして取り扱うことができると、公式ドキュメントには記述があります。またその URL のプロトコルはいくつかの種類が利用可能で、その中に HTTP
が含まれる、と記述されています。 (参照:
<https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-
snapshots.html#_read_only_url_repository> )

また、前提として、 Elasticsearch snapshot の中身は、 lucene indices +
メタデータのファイルたちから構成される、一種のディレクトリ構造であること理解しています。

そうであるとすると、 HTTP URL の read-only のレポジトリからデータを restore するためには、 ディレクトリに対応する URL に
GET リクエストを送った場合には、そのディレクトリに含まれるファイル一覧が、特定の形式で帰ってこなければならない、と考えています。

Q1: 自分の理解は正しいでしょうか  
Q2: そうであった場合、そのディレクトリに対して GET
をした際のレスポンスは、どのような仕様に従うべきなのでしょうか。(どのような形式で返ってきていれば、それは URL レポジトリとして動作するのでしょうか)


CC BY-SA 3.0
2015-12-22T17:03:20.983
20303
2015-12-23T23:41:20.780
2015-12-22T18:06:30.597
754
754
question
elasticsearch
Elasticsearch の HTTP URL レポジトリは仕様として、ディレクトリの URL では何を返す必要がある？


urlタイプを試す前にリンク先のドキュメントにfsタイプを試してみてください。Elasticsearchのconfigで`path.repo`にサーチパスを指定してfsタイプでスナップショットを取ると、次のようなディレクトリ構成が出来上がります。下の例は`backups/my_backup`というディレクトリにsnapshot_1という名前のスナップショットを作成した例です。Elasticsearchはここからmetadata-
スナップショット名のファイルを読み込んでいます。

Webサーバはmy_backupがルートになるように設定します。つまり`http://ホスト名/パス/`でアクセスした時にindex, indices,
metadata-スナップショット名, snapshot-
スナップショット名が見えていればOKです。Elasticsearchのconfigでは`repositories.url.allowed_urls:
["http://ホスト名/*"]`というように許可するURLをセットしておきます。

[code]

    $ tree backups
    backups
    └── my_backup
        ├── index
        ├── indices
        │   └── myindex
        │       ├── 0
        │       │   ├── __0
        │       │   ├── __1
        │       │   ├── __2
        │       │   ├── __3
        │       │   ├── __4
        │       │   ├── __5
        │       │   ├── __6
        │       │   ├── __7
        │       │   ├── __8
        │       │   ├── __9
        │       │   ├── __a
        │       │   ├── __b
        │       │   ├── __c
        │       │   └── snapshot-snapshot_1
        │       ├── 1
        │       │   ├── __0
        │       │   ├── __1
        │       │   ├── __2
        │       │   ├── __3
        │       │   └── snapshot-snapshot_1
        │       ├── 2
        │       │   ├── __0
        │       │   ├── __1
        │       │   ├── __2
        │       │   ├── __3
        │       │   ├── __4
        │       │   ├── __5
        │       │   ├── __6
        │       │   ├── __7
        │       │   ├── __8
        │       │   ├── __9
        │       │   ├── __a
        │       │   ├── __b
        │       │   ├── __c
        │       │   ├── __d
        │       │   ├── __e
        │       │   ├── __f
        │       │   └── snapshot-snapshot_1
        │       ├── 3
        │       │   ├── __0
        │       │   ├── __1
        │       │   ├── __2
        │       │   ├── __3
        │       │   ├── __4
        │       │   ├── __5
        │       │   ├── __6
        │       │   ├── __7
        │       │   ├── __8
        │       │   ├── __9
        │       │   ├── __a
        │       │   ├── __b
        │       │   ├── __c
        │       │   └── snapshot-snapshot_1
        │       ├── 4
        │       │   ├── __0
        │       │   ├── __1
        │       │   ├── __2
        │       │   ├── __3
        │       │   ├── __4
        │       │   ├── __5
        │       │   ├── __6
        │       │   ├── __7
        │       │   ├── __8
        │       │   ├── __9
        │       │   ├── __a
        │       │   ├── __b
        │       │   ├── __c
        │       │   ├── __d
        │       │   ├── __e
        │       │   ├── __f
        │       │   ├── __g
        │       │   ├── __h
        │       │   ├── __i
        │       │   └── snapshot-snapshot_1
        │       └── snapshot-snapshot_1
        ├── metadata-snapshot_1
        └── snapshot-snapshot_1
    
    8 directories, 74 files
    
[/code]


CC BY-SA 3.0
2015-12-22T18:53:47.963
20304
2015-12-23T23:41:20.780
2015-12-23T23:41:20.780
7837
7837
20303
answer