У меня есть файлы в моем магазине Google Cloud, которые я хотел бы использовать встроенными и для загрузки на моем сайте, настроенными с помощью GAE и PHP, но я не могу заставить их их обслуживать.
Я просматривал: https://developers.google.com/appengine/docs/php/refdocs/files/api.cloud_storage.CloudStorageTools# \ google \ appengine \ api \ cloud_storage \ CloudStorageTools
Функция подачи не работает для меня, или, вероятно, я не использую ее должным образом.
Должен ли я не просто пойти serve($gs_filename);
захватить файл? Любая помощь будет оценена! Благодарю.
ОБНОВИТЬ:
require_once 'google/appengine/api/cloud_storage/CloudStorageTools.php'; use google\appengine\api\cloud_storage\CloudStorageTools; $bucket = 'raven-bucket'; $recording_name = '/194-14-02-2014rec.ogg'; $recording_data = CloudStorageTools::serve('gs://'.$bucket.$recording_name, ['content_type' => 'audio/ogg']);
Это то, что у меня есть до сих пор, но я не уверен, что serve();
фактически возвращается. Как я могу вставить этот аудиофайл в аудио-элемент HTML 5 или сделать ссылку для скачивания?
ОБНОВЛЕНИЕ 2: Это работает!
<audio controls> <source src="test.php" type="audio/ogg"> </audio>
test.php:
<?php require_once 'google/appengine/api/cloud_storage/CloudStorageTools.php'; use google\appengine\api\cloud_storage\CloudStorageTools; CloudStorageTools::serve('gs://raven-bucket/194-14-02-2014rec.ogg', ['content_type' => 'audio/ogg']);
CloudStorageTools :: serve () – это правильный способ сделать это по нескольким причинам
Вы можете увидеть технику, используемую в нашем blogpost для создания динамических sitemaps для WordPress – под заголовком «Создать обработчик запроса», код по существу.
Опция 1.
Если вы хотите вернуть файл «194-14-02-2014rec.ogg» в ведро «raven-bucket» в качестве ответа на запрос, то выглядит ваш php-скрипт.
<?php use google\appengine\api\cloud_storage\CloudStorageTools; CloudStorageTools::serve('gs://raven-bucket/194-14-02-2014rec.ogg', ['content_type' => 'audio/ogg']);
Вариант 2.
Вы хотите, чтобы пользователь загрузил файл «194-14-02-2014rec.ogg» в ведро «воронье ведро», чтобы он был сохранен на локальном компьютере.
<?php use google\appengine\api\cloud_storage\CloudStorageTools; CloudStorageTools::serve('gs://raven-bucket/194-14-02-2014rec.ogg', ['save_as' => '194-14-02-2014rec.ogg', 'content_type' => 'audio/ogg']);
Вы можете получить доступ к файлам, хранящимся в облачных хранилищах, изначально, без использования CloudStorageTools.
Вам необходимо:
Создайте файл php.ini и установите директиву google_app_engine.allow_include_gs_buckets, в которой указываются ведра, к которым вы хотите получить доступ (см. https://developers.google.com/appengine/docs/php/config/php_ini#GAE_directives ).
наконец, вы можете просто:
Включают:
<? include("gs://your-bucket/file.php"); ?>
Или прочитайте содержимое файлов:
<? $content = file_get_contents("gs://your-bucket/file.txt"); ?>