Ich versuche, einige Dateien mit PHP in Google Cloud Storage hochzuladen. Es scheint teilweise zu funktionieren, da ich die Dateien in der Webkonsole sehe, aber ich habe festgestellt, dass alle Dateien nur 14 Bytes groß sind, während das Original viel größer ist.Nur 14 Bytes werden in Google Cloud Storage hochgeladen.
Dies ist der Code Ich verwende:
/**
*
*/
public static function saveFile($originalFile, $newFilename) {
$bucket = MyStorage::getBucket();
if ($bucket == null) {
// Save locally
Storage::disk('local')->put(FileController::$FILE_DIR . $newFilename, file_get_contents($originalFile));
} else {
// Save to Google Cloud Platform
$bucket->upload($originalFile->getRealPath(), ['name' => $newFilename]);
}
}
/**
*
*/
private static function getBucket() {
$appEnv = getenv('APP_ENV');
if ($appEnv == "production" || $appEnv == "test") {
$GOOGLE_CLOUD_PROJECT_ID = getenv('GOOGLE_PROJECT_ID');
$GOOGLE_CLOUD_BUCKET_NAME = getenv('GOOGLE_BUCKET_NAME');
$storage = new StorageClient(['projectId' => $GOOGLE_CLOUD_PROJECT_ID]);
$bucket = $storage->bucket($GOOGLE_CLOUD_BUCKET_NAME);
return $bucket;
} else {
return null;
}
}
$originalFile->getRealPath()
kehrt so etwas wie /tmp/asdfasdfadf
und ich habe festgestellt, dass die Datei existiert und ist eine vernünftige Größe. Der $newFilename
Variablenname ist, was ich möchte, dass es gespeichert wird, und dieser Teil scheint zu funktionieren, da ich diesen Dateinamen in der Webkonsole sehe.
Irgendwelche Ideen, was könnte passieren?
ich nicht wirklich php weiß es, aber ist es möglich, dass Sie nur den Pfad zur Datei als String hochladen, im Gegensatz zur eigentlichen Datei? Wenn Sie sich die Client-Bibliothek ansehen, scheinen sie 'fopen' zu verwenden: https://googlecloudplatform.github.io/google-cloud-php/#/docs/google-cloud/v0.24.0/storage/bucket?method= upload dh '$ bucket-> hochladen (fopen ($ originalFile-> getRealPath(), 'r'), ['name' => $ neuerDateiname]);' –
Sie können den Upload der maximal erlaubten Größe in PHP ändern. ini.serch das upload_max_filesize = 128M – lalithkumar
@Robert Lacok guten Fang, ich werde das überprüfen und melden. – Sandy