Module: StoreAgent

Defined in:
lib/store_agent.rb,
lib/store_agent/user.rb,
lib/store_agent/config.rb,
lib/store_agent/version.rb,
lib/store_agent/validator.rb,
lib/store_agent/workspace.rb,
lib/store_agent/exceptions.rb,
lib/store_agent/node/object.rb,
lib/store_agent/data_encoder.rb,
lib/store_agent/node/attachment.rb,
lib/store_agent/version_manager.rb,
lib/store_agent/node/object/file_object.rb,
lib/store_agent/node/attachment/metadata.rb,
lib/store_agent/version_manager/ruby_git.rb,
lib/store_agent/data_encoder/gzip_encoder.rb,
lib/store_agent/node/attachment/permission.rb,
lib/store_agent/node/object/virtual_object.rb,
lib/store_agent/node/prepend_module/locker.rb,
lib/store_agent/version_manager/rugged_git.rb,
lib/store_agent/node/object/directory_object.rb,
lib/store_agent/node/prepend_module/path_validator.rb,
lib/store_agent/node/prepend_module/permission_checker.rb,
lib/store_agent/data_encoder/openssl_aes_256_cbc_encoder.rb

Overview

– Copyright 2015 realglobe, Inc.

Licensed under the Apache License, Version 2.0 (the “License”); you may not use this file except in compliance with the License. You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an “AS IS” BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License. ++

Defined Under Namespace

Modules: Node, Validator Classes: Configuration, DataEncoder, Guest, InvalidNodeTypeError, InvalidPathError, InvalidRevisionError, PermissionDeniedError, Superuser, User, VersionManager, Workspace

Constant Summary collapse

VERSION =
"1.0.1"

Class Method Summary collapse

Class Method Details

.configObject

設定を参照するメソッド

c = StoreAgent.config # => #<StoreAgent::Configuration:...>
c.storage_root        # => "/path/to/storage/root"
c.storage_dirname     # => "/storage"

各設定と初期値は以下

storage_root

ライブラリがファイルやメタデータを保存するディレクトリのパス。

c.storage_root # => "/tmp/store_agent"
storage_dirname

ワークスペース内で、ファイルの実体を保存するディレクトリ名。

c.storage_dirname # => "/storage"
metadata_dirname

ワークスペース内で、ファイルのメタデータを保存するディレクトリ名。

c. # => "/metadata"
permission_dirname

ワークスペース内で、ファイルの権限情報を保存するディレクトリ名。

c.permission_dirname # => "/permission"
metadata_extension

メタデータファイルの拡張子。
名前の末尾がこの拡張子と一致する場合、ファイルやディレクトリは作成できない。

c. # => ".meta"
permission_extension

権限情報ファイルの拡張子。
名前の末尾がこの拡張子と一致する場合、ファイルやディレクトリは作成できない。

c.permission_extension # => ".perm"
superuser_identifier

スーパーユーザーのユーザーID。

c.superuser_identifier # => "root"
guest_identifier

ゲストユーザーのユーザーID。

c.guest_identifier # => "nobody"
version_manager

バージョン管理に使用するクラスの名前。

c.version_manager # => StoreAgent::VersionManager
storage_data_encoders

ファイルの実体をエンコードするのに使用するインスタンスの配列。
配列が複数要素を含む場合、各インスタンスのencode/decodeメソッドが順に呼ばれる。

c.storage_data_encoders # => []
attachment_data_encoders

ファイルのメタデータ/権限情報をエンコードするのに使用するインスタンスの配列。
配列が複数要素を含む場合、各インスタンスのencode/decodeメソッドが順に呼ばれる。

c.attachment_data_encoders # => []
reserved_filenames

システムが予約しているファイル名の配列。
名前が含まれている場合、ファイルやディレクトリは作成できない。

c.reserved_filenames # => [".", ".."]
lock_timeout

ファイル読み書き時のロックのタイムアウト秒数。

c.lock_timeout # => 0.1
default_directory_bytesize_limit

現在のバージョンでは使用していない。

json_indent_level

メタデータ/権限情報をJSON形式で保存する際、半角スペース何個でインデントするかの指定。

c.json_indent_level # => 2
default_owner_permission

ファイルやディレクトリの作成者にデフォルトで付与される権限。
現在のバージョンでは read、write、chown、chmod の4種類が権限として使用できる。

c.default_owner_permission
# =>
# {
#   "read" => true,
#   "write" => true,
#   "execute" => true
# }
default_guest_permission

権限情報が登録されていないユーザーやゲストユーザーに対して付与される権限。

c.default_guest_permission # => {}


97
98
99
# File 'lib/store_agent/config.rb', line 97

def config
  @config ||= StoreAgent::Configuration.new
end

.configure {|config| ... } ⇒ Object

設定を変更するメソッド

StoreAgent.configure do |c|
  c.storage_root = "/path/to/storage/root"
  c.version_manager = StoreAgent::VersionManager::RuggedGit
end

変更可能な項目は config メソッドを参照

Yields:



26
27
28
# File 'lib/store_agent/config.rb', line 26

def configure
  yield config
end

.reserved_filenamesObject

:nodoc:



101
102
103
# File 'lib/store_agent/config.rb', line 101

def reserved_filenames # :nodoc:
  config.reserved_filenames | config.version_manager.reserved_filenames
end