#3「ファイル操作アダプタ」 DataSpider Servista 3.0 SP2新機能紹介

Avatar
dstn


みなさまこんにちは。アプレッソ開発部の東です。

3.0 SP2の機能紹介、第三回目となる今回はファイル操作アダプタの機能追加について紹介します。

3.0 SP2では、ファイル操作アダプタのオペレーションに以下の機能が追加されました。

□ファイル名一覧取得処理で、ファイルの更新日時とファイルサイズを取得できる機能
□ZIP圧縮処理およびZIP解凍処理で、ZIP ファイル内のファイル名エンコーディングを指定できる機能
□ZIP圧縮処理で、パスワードつきの ZIP ファイルを作成できる機能
□ZIP解凍処理で、パスワードつきの ZIP ファイルを解凍できる機能

まずは「ファイル名一覧取得処理で、ファイルの更新日時とファイルサイズを取得できる機能」から説明していきます。

ファイルの更新日時とファイルサイズは、ファイル名一覧取得処理の結果データから取得します。

以下は、本機能対応前の結果データのスキーマです。

filelist>
<file name="" type=""/>
</filelist>


このスキーマが、以下のように変更になりました。

<filelist>
<file name="" size="" type="" updated=""/>
</filelist>


このスキーマの「size」属性の値が「ファイルサイズ」、「updated」属性の値が「ファイルの更新日時」となります。

以下は、実際にスクリプトを実行し、取得した結果データです。

<filelist>
<file name="新規ファイル.txt" size="63" type="file" updated="2012-08-14T13:16:16.245+0900"/>
</filelist>


これらの値をMapperでスクリプト変数に代入するなどして、後続の処理で使用することができます。

つづいて、「ZIP圧縮処理およびZIP解凍処理で、ZIP ファイル内のファイル名エンコーディングを指定できる機能」を説明します。

ファイルのエンコーディング(符号化方式)は、ファイルの内容とファイル名が別々に定義されています。ファイルの内容は、テキストエディタで保存する際などに指定できますが、ファイル名は基本的にOSのエンコーディングで定義されます。

たとえば、WindowsではOSのデフォルトエンコーディングが「Windows-31J」となるため、ファイル名も同じく「Windows-31J」で設定されています。これをデフォルトエンコーディングが「UTF-8」であるLinuxで見ると、ファイル名が2バイト文字の場合、文字化けしてしまいます。

一般的なFTPクライアントなどでは、転送時にファイル名の変換を自動で行ってくれるものも存在するため、ファイルそのものを転送する場合には問題は発生しにくいと言えます。しかし、ZIPファイルを転送する場合、ZIPファイル内のファイルのエンコーディング変換まで行われないため、転送先でZIPファイルを展開したら中のファイル名が文字化けしていた、ということが起こり得ます。(※)

今回対応したZIP圧縮・解凍時のエンコーディング指定は、この問題に対応することができる機能です。

(※)DataSpider Servistaヘルプの「DataSpiderServerの設定」ページの「仕様制限」項に記載されている以下の事項も、同一の原因により発生する問題です。

□Windows-UNIX(Linuxを含む)間のサーバ移行では、設定名に2バイト文字が含まれていた場合、移行後に文字化けが発生します。 ファイル名のエンコードはOSに準拠するため、ファイル名エンコードが異なるプラットフォーム間のサーバ移行はエンコードに注意してください。

プロパティ項目は、ZIP圧縮処理が「圧縮オプション」タブの「ファイル名エンコード」、ZIP解凍処理が「解凍オプション」の「ファイル名エンコード」となります。リストから選択する形式ですが、Javaがサポートしているエンコーディングであれば直接入力して設定することもできます。

zip1

ZIP圧縮処理

zip2

ZIP解凍処理

最後に、「ZIP圧縮処理で、パスワードつきの ZIP ファイルを作成できる機能」および「ZIP解凍処理で、パスワードつきの ZIP ファイルを解凍できる機能」を説明します。

これは、暗号化されたZIPファイルを展開することや、ZIPファイルを圧縮する際に暗号化することができる機能です。

ZIP圧縮処理では、「暗号化」タブの「暗号化する」を有効(チェックあり)にした上で、「パスワード」の入力と「暗号化方式」の選択をする必要があります。

zip3

「暗号化方式」は「標準」と「AES-256」の2つの方式から選択できます。「標準」を選択した場合は一般的な暗号化方式で暗号化します。ほとんどのZIPツールがこの暗号化方式に対応していますが、暗号強度は強くありません。一方の「AES-246」は「標準」より暗号強度が強く堅牢ですが、対応するZIPツールが限られるためこの方式で暗号化したZIPファイルを他のZIPツールで展開できない場合もあります。

ZIP解凍処理では、「パスワード」を入力するだけでOKです。

zip4

暗号化されているZIPファイルをパスワードなしで展開しようとすると、次のエラーになります。

com.appresso.ds.dp.modules.adapter.file_operation.ZipOperationException: ZIPファイルが暗号化されています。パスワードを設定してください。


パスワードが間違っていた場合には、次のエラーになります。

com.appresso.ds.dp.modules.adapter.file_operation.ZipOperationException: パスワードが正しくありません。


ファイル操作アダプタの新機能の説明は以上となります。最終回となる次回は、外部アプリケーション起動処理について紹介する予定です。

コメント

ログインしてコメントを残してください。

Powered by Zendesk