PHP Base64 загрузка изображения строки не работает с Google\Cloud\Storage\StorageClient; используя GOOGLE STORAGE BUCKET
Мне нужно загрузить изображение из мобильного приложения, чтобы у нас был API, который берет строковое изображение base64 и загружает его на сервер. Он работает нормально на нашем текущем сервере, но теперь мы переходим на Google Cloud, поэтому он не работает
Когда я захожу на изображение из браузера, оно показывает ошибку, мне нужно решение в коде PHP
Я уже разместил код для этого
/* working fine in current server */
$file = $DIR.$imagename;
$ifp = fopen($file, "wb");
$data = explode(',', $base64img);
fwrite($ifp, base64_decode($data[1]));
fclose($ifp);
/* Now i have changed above current server code for Gcloud as following */
$storage = new StorageClient([
'projectId' => getenv("PROJECT_ID"),
]);
$bucket = $storage->bucket(getenv("GOOGLE_STORAGE_BUCKET"));
$object = $bucket->upload(file_get_contents(base64_decode($data[1])), [
'name' => $file,
'predefinedAcl' => 'publicRead',
]);
Теперь, когда я захожу на URL изображения из браузера, он показывает следующий ответ и файл не загружается в gcloud, все разрешения уже даны
Отображение следующей ошибки:
<Error>
<Code>AccessDenied</Code>
<Message>Access denied.</Message>
<Details>Anonymous caller does not have storage.objects.get access to mydomain.appspot.com/uploads/users/111111/docs/12241/92ddc8390754da02b4e8d34d6a33680d.jpg.</Details>
</Error>