0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

App Service で zip ファイルを作成する

Posted at

App Service の中で zip ファイルを作成する方法について。

はじめに

App Service はサンドボックスでの提供のため、アプリケーションの追加や一部標準コマンドの実行に制限があります。

例えば Compress-Archive コマンドレットに関しても、 'Write-Progress : Win32 internal error' が応答されるため zip ファイルを作成することが出来ません。

webapp-zip1.png

そのため、App Service 内で (WebJob などから) zip ファイルを作成するためには、C# や Node.js, Java などのアプリから作成するか、外部の実行ファイルを使用することが必要です。

7-zip の使用

おそらく広く使われており、App Service 上でも動作する処理系として OSS で公開されている 7-zip があります。
App Service 上で 7-zip を使用する方法として以下の手順が使用できます。

(1). 7-zip のダウンロード: \home\bin に配置することにします。

mkdir %HOME%\bin
cd %HOME%\bin

// 7-Zip 22.01 (2022-07-15) を使用する場合
curl -OL https://7-zip.org/a/7zr.exe

// 7-Zip 9.20 (2010-11-18) を使用する場合
curl -OL https://7-zip.org/a/7za920.zip
unzip 7za920.zip
 -> 7za.exe を含むいくつかのファイルが展開されます。

(2). 圧縮の実行
7-zip の日本語解説にもありますが、a オプションと出力先になる zip ファイル、格納するファイルを指定するだけです。
以下の例は \home\LogFiles フォルダを圧縮して \home\LogFiles.zip を作成する例です。

cd %HOME%
// 7-Zip 22.01 (2022-07-15) を使用する場合
%HOME%\bin\7zr.exe a LogFiles.zip .\LogFiles

cd %HOME%
// 7-Zip 9.20 (2010-11-18) を使用する場合
%HOME%\bin\7za.exe a LogFiles.zip .\LogFiles

以下のように作成されます。zip ファイルの中に配置される際のパスは、最後に指定するファイル、フォルダのパスの指定方法に依存します。
zip フォルダ内に格納したい方法に合わせて調整してください。

image.png

あちこちのフォルダを 1 つの zip に、決まったフォルダ構成で配置したい場合は、特定のフォルダにコピーして配置したファイルを zip でまとめるか、プログラムを書いて zip ファイルを作る必要があります。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?