指定ディレクトリに置いたファイルを自動転送したい

OrangeLab. 運営チーム
作成日時: - 更新日時:
Avatar

はじめに

こんにちは、HULFT Orange Lab.運営チームの兼平です。
本日は「指定ディレクトリ内にファイルが置かれた場合、ファイルを転送する」というTipsについてご紹介します。

指定ディレクトリ内にファイルが置かれた時にまとめて配信したい場合、HULFTのファイルトリガー機能を利用すれば単一ファイルを監視し配信することは可能ですが、大量のファイルを監視するには大量の管理情報を作成しなければならないので不向きです。

また、HUFLT Scriptのファイルトリガー機能でディレクトリを監視することも可能ですが、タイムスタンプ監視のみが可能なので、ファイルのコピー中にトリガーが発火してしまう場合があります。

本Tipsではトリガー機能を使わず、HULFT Scriptで監視用スクリプトを作成し、スケジュールトリガーを使用することで定期的にディレクトリをチェックし、コピー完了したファイルのみをまとめて配信する仕組みについて説明していきます。

ディレクトリ内にファイルが置かれた場合に自動配信する処理の流れ

  1. ファイルチェック、ファイル移動、ファイル転送要求などの一連処理を行う「ファイル転送スクリプト」を作成する
  2. ○分毎に起動するスケジュールトリガに1.で作成したスクリプトを指定する
  3. ○分毎にトリガーが起動してスクリプトを実行し、指定ディレクトリにファイルがあるかどうかをチェックし配信する

ファイル転送スクリプトについて

ファイル転送スクリプトが実際にどんな処理をしているのかご紹介します。



①ファイル一覧取得
「転送対象ディレクトリ」にあるファイルの一覧を取得します。
②転送対象ファイルチェック
①で取得したファイル一覧を元に、ファイルの有無をチェックします。
ファイルがない場合はそのまま処理を終了し、ある場合は一件ずつ処理を行います。
③転送ファイル名取得
②で取得したファイル名を変数に代入します。
④転送対象ファイル移動
「転送対象ディレクトリ」にあるファイルを「転送中ディレクトリ」に移動させます。
コピー中などでファイルを移動できなかった場合は、例外発生時処理に移ります。
⑤不要ファイル一覧取得
④でファイル移動に失敗した場合のみこの処理を行います。
移動失敗すると「転送中ディレクトリ」に不要なファイルが残りますので、そのファイルの一覧を取得します。
⑥不要ファイルチェック
不要ファイルの有無をチェックします。
⑦不要ファイル削除
不要ファイルを削除します。
⑧転送対象ファイル配信
「転送中ディレクトリ」内にあるファイルをまとめて転送します。
※テンプレートの「フォルダ配下全ファイル転送要求」を改良して利用しています。

スケジュールトリガについて

HULFT Scriptのスケジュールトリガーを利用し、インターバルで監視スクリプトを起動することで、ディレクトリをチェックする様にします。

①スケジュールトリガーの新規作成で「インターバル」を選択

②実行間隔を3分に設定

③スクリプトに作成したスクリプトを選択

④トリガーが登録され、3分ごとにスクリプトが実施される

まとめ

いかがでしょうか?

このようにHULFT Scriptを利用する事で、一定間隔で指定ディレクトリのファイルをチェックし、ファイルが存在すれば配信を行う事ができます。

ぜひ運用に合わせて、様々なスクリプトを作成して活用してきましょう。
この記事は役に立ちましたか?
0人中0人がこの記事が役に立ったと言っています

コメント