Я использую пакет google/cloud-storage
в API и успешно загружаю файлы PDF в облако Google Ведро для хранения. Однако файлы PDF сначала сохраняются локально, прежде чем они будут загружены в корзину Google Cloud Storage.
Как я могу не сохранять их локально и вместо этого загружать их непосредственно в корзину Google Cloud Storage? Я планирую разместить API на Google App Engine. Это сообщение для этого.
Вот чем я сейчас занимаюсь:
$filename = $request['firstname'] . '.pdf';
$fileStoragePath = '/storage/pdf/' . $filename;
$publicPath = public_path($fileStoragePath);
$pdf = App::make('dompdf.wrapper');
$pdf->loadView('pdfdocument', $validatedData)
$pdf->save($publicPath);
$googleConfigFile = file_get_contents(config_path('googlecloud.json'));
$storage = new StorageClient([
'keyFile' => json_decode($googleConfigFile, true)
]);
$storageBucketName = config('googlecloud.storage_bucket');
$bucket = $storage->bucket($storageBucketName);
$fileSource = fopen($publicPath, 'r');
$newFolderName = $request['firstname'].'_'.date("Y-m-d").'_'.date("H:i:s");
$googleCloudStoragePath = $newFolderName.'/'.$filename;
/*
* Upload a file to the bucket.
* Using Predefined ACLs to manage object permissions, you may
* upload a file and give read access to anyone with the URL.
*/
$bucket->upload($fileSource, [
'predefinedAcl' => 'publicRead',
'name' => $googleCloudStoragePath
]);
Можно ли загружать файлы в корзину Google Cloud Storage без предварительного локального сохранения?
Спасибо за помощь.
StreamInterface
, вы можете связать их вместе. googleapis. github.io/google-cloud-php/#/docs/cloud-storage/ И https://github.com/php-fig/http-message/blob/1.0.1/src/StreamInterface.php - person John Hanley   schedule 22.04.2021