私は、S3バケットからファイルを読み取り、zipしてから、zipファイルをバケットに書き戻すEC2サーバー上のLinuxボックスで実行するPHPコードを書き始めたところです。
EC2インスタンスのローカルディスク上のいくつかの画像から単純なzipアーカイブを作成することでさえ問題にすぐに遭遇しました。スクリプトを使用して、オンラインでPHPマニュアルのアイデアをテストし、Davidのスクリプトも試しました。 Walsh- http://davidwalsh.name/create-zip-phpこれは素晴らしいと思われます。どちらも実際のzipファイルにはならず、どちらも異なるステータス結果を表示します-
PHPマニュアルの最初のスニペット(変数$ thisdirを追加します)-
<?php
$zip = new ZipArchive();
$filename = "test112.zip";
$thisdir = "/uploads/";
if ($zip->open($filename, ZIPARCHIVE::CREATE)!==TRUE) {
exit("cannot open <$filename>\n");
}
$zip->addFromString("testfilephp.txt" . time(), "#1 This is a test string added as testfilephp.txt.\n");
$zip->addFromString("testfilephp2.txt" . time(), "#2 This is a test string added as testfilephp2.txt.\n");
$zip->addFile($thisdir . "/too.php","/testfromfile.php");
echo "numfiles: " . $zip->numFiles . "\n";
echo "status:" . $zip->status . "\n";
$zip->close();
?>
出力=
numfiles:2ステータス:11
'uploads'フォルダにzipファイルが表示されません
私が試したコードの2番目のビット(ここにコードを投稿しません)-実際のファイルを渡すと、
zipアーカイブには、ステータスが0の2つのファイルが含まれています
ステータスメッセージとは何ですか。phpinfo()の出力を見て、正しいライブラリがインストールされているかどうかを確認しました。そしてZIPの見出しの下に私が見る-
Zip対応
拡張バージョン$Id:php_zip.c、v 1.1.2.43 2008/01/18 00:51:38 pajoye Exp$
Zipバージョン
1.8.11Libzipバージョン0.8.0互換
実行しているコードを使用してファイルPHPファイルのアクセス許可を確認しました。これらは、zipアーカイブを追加しようとしているフォルダーと同様に777に設定されています。私はこれが777のままであってはならないことを知っています。
zipファイルが表示されない理由はありますか?ステータス値はどういう意味ですか?PHPを使用してAmazonS3バケット上のファイルを圧縮するための優れたチュートリアルはありますか?またはこの機能を提供するための優れたユーティリティ?
乾杯