hws-wao / core

0 stars 0 forks source link

[FILE]保存、更新、削除 #42

Open kimuramanabu opened 9 years ago

kimuramanabu commented 9 years ago

ファイルを追加、更新、削除する機能の開発。 内部実装はある程度終わっているのでメイン作業はwaoインタフェース。

hws-aoyagi commented 9 years ago

合宿前までに箇条書きでインターフェースをここに書く。

yujiroarai commented 9 years ago

追加

追加したい場所をnameで指定する。

POST name="/file/path"

更新

※ 追加と同じ。既にファイルがある場合、上書きされる。

POST name="/file/path"

削除

削除したい場所をnameで指定する。_methodパラメータにdeleteが設定されている場合削除。

POST name="/file/path" _method="delete"

zip解凍

ファイル名の拡張子が.zipで、nameで指定したパスに拡張子がない場合、解凍して配置する。

POST name="/file/path" filename="aaa.zip"
yujiroarai commented 9 years ago

ファイル追加・更新仕様案2

ファイル追加・更新

<input type="file" name="_FILE.{file_path}" />
yujiroarai commented 9 years ago

削除(案2)

<input type="hidden" name="_FILE.path" value="{file_path}" />
<input type="hidden" name="_method" value="delete" />

メモ: _FILE.の後が、/から始まる場合は、ファイルパス。それ以外は、変数として扱う。

yujiroarai commented 9 years ago

ファイルパス取得

_FILE.PATH. のあとにファイルのパスを指定する。

公開ディレクトリ

公開ディレクトリに置いたファイルを指定した場合、公開されているパス + ?hash={ハッシュ値}を返す

※ ハッシュ値はキャッシュ対策

<img data-wao-bind-src="_FILE.PATH./templates/file/path.jpg" />

#=> <img src="/file/path.jpg?hash=446f058dc641c8b5d967bd998fe3c10a8e97e0a2" />

非公開ディレクトリ

非公開ディレクトリに置いたファイルを指定した場合、暗号化したパス + 拡張子 + '?hash={ハッシュ値}'のパスを返す

<img data-wao-bind-src="_FILE.PATH./hidden/file/path.jpg" />

#=> <img src="/619f9feae7d2c23ea5cb573f2d41a127a75b5b20.jpg?hash=446f058dc641c8b5d967bd998fe3c10a8e97e0a2" />

ファイル内容取得

_FILE.BODY. のあとに内容を取得したいファイルのパスを指定する。

$ echo "Hello World!" > /hidden/file/path.txt
---------

<div data-wao-bind="_FILE.BODY./hidden/file/path.txt" ></div>

#=> <div>Hello World!</div>
yujiroarai commented 9 years ago

DB情報を元に動的に指定するファイルのパスを変更する

{} で囲んで、コレクション名プロパティ名を指定する。

<img data-wao-bind-src="_FILE.PATH.{users.avatar_file_path}" />
<div data-wao-bind="_FILE.BODY.{users.avatar_file_path}" ></div>
kimuramanabu commented 9 years ago

<残作業> multipartの解析処理に手を加える。 FileServiceのインタフェース見直し。 GETの実装。

yujiroarai commented 9 years ago

複数ファイルアップロードができない問題が残っている。