[英]How to confirm a successful uploaded object in google storage with if statement in PHP
我使用下面的代码将文件上传到谷歌存储,这是成功的。 请问我如何使用 if 语句来确认它是否成功,例如:
<?php
function upload_object($bucketName, $objectName, $source){
$storage = new StorageClient();
$file = fopen($source, 'r');
$bucket = $storage->bucket($bucketName);
$object = $bucket->upload($file, ['name' => $objectName);
printf('Uploaded %s to gs://%s/%s' . PHP_EOL, basename($source), $bucketName, $objectName);
}
upload_object($bucketName, $objectName, $source);
if ($object->exists() === false) {
echo "The object '{$object->name}' does not exist.";
}
?>
首先,我不知道google-cloud-storage
,但只是从函数返回状态并测试:
function upload_object($bucketName, $objectName, $source){
$storage = new StorageClient();
$file = fopen($source, 'r');
$bucket = $storage->bucket($bucketName);
$object = $bucket->upload($file, ['name' => $objectName]);
return $object->exists();
}
$result = upload_object($bucketName, $objectName, $source);
if ($result === false) {
echo "The object '{$object->name}' does not exist.";
} else {
printf('Uploaded %s to gs://%s/%s' . PHP_EOL, basename($source), $bucketName, $objectName);
}
经过一番搜索后,您似乎可能需要使用GoogleException
:
use Google\Cloud\Core\Exception\GoogleException;
try {
$object = $bucket->upload($file, ['name' => $objectName]);
} catch (GoogleException $e) {
echo $e->getMessage(); //or something
return false;
}
您可以检查类型为Google\Cloud\Core\Exception\GoogleException
的异常以确定在此过程中是否存在问题。 如果没有抛出异常,则您的 object 将已成功上传。
use Google\Cloud\Core\Exception\GoogleException;
try {
$object = $bucket->upload('mydata', [
'name' => 'test.txt'
]);
} catch (GoogleException $ex) {
$ex->getMessage(); // handle the failure
}
资料来源: https://github.com/googleapis/google-cloud-php/issues/666
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.