Ich bin gerade dabei, einen PHP-Code zu schreiben, der auf einer Linux-Box auf einem EC2-Server läuft und Dateien aus meinem S3-Bucket liest, sie zippt und dann die Zip-Datei zurück in den Bucket schreibt.
Ich habe sofort Probleme mit der Erstellung eines einfachen Zip-Archivs aus einigen Bildern auf der lokalen Festplatte der EC2-Instanz. Ich verwende ein Skript, um die Idee aus dem PHP-Handbuch online zu testen und habe auch ein Skript von David Walsh ausprobiert - http://davidwalsh.name/create-zip-php die großartig zu sein scheint. Keines von beiden führt zu einer tatsächlichen Zip-Datei und beide geben mir unterschiedliche Statusergebnisse -
der erste Schnipsel aus dem php-Handbuch (zu dem ich die Variable $thisdir hinzufüge)-
<?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();
?>
Ausgang =
numfiles: 2 status:11
Ich sehe keine Zip-Datei in meinem "Uploads"-Ordner
Das zweite Bit des Codes, den ich versuche (ich werde den Code hier nicht posten) - ich übergebe echte Dateien und er gibt zurück
Das Zip-Archiv enthält 2 Dateien mit einem Status von 0
Wie lauten die Statusmeldungen? Ich habe überprüft, ob ich die richtigen Bibliotheken installiert habe, indem ich mir die Ausgabe von phpinfo() angesehen habe; und unter der Überschrift ZIP sehe ich -
Zip aktiviert
Version der Erweiterung $Id: php_zip.c,v 1.1.2.43 2008/01/18 00:51:38 pajoye Exp $
Zip-Version 1.8.11
Libzip Version 0.8.0-kompatibel
Ich habe die Berechtigungen der PHP-Dateien mit dem Code, den ich ausführe, überprüft und sie sind auf 777 gesetzt, ebenso wie der Ordner, dem ich versuche, das ziparchive hinzuzufügen. Ich weiß, dass dies nicht bei 777 bleiben sollte.
Haben Sie eine Idee, warum ich eine Zip-Datei nicht sehen kann? Was bedeuten die Statuswerte? Gibt es eine gute Anleitung für die Verwendung von PHP zum Komprimieren von Dateien in einem Amazon S3-Bucket oder ein gutes Dienstprogramm, das diese Funktion bietet?
Prost