我的Google云端商店中有文件要嵌入并在我的网站上下载,并使用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']);
答案 0 :(得分:2)
您可以本机访问存储在云存储桶中的文件,而无需使用CloudStorageTools。
您需要:
创建 php.ini 文件并输入 google_app_engine.allow_include_gs_buckets 指令,指定您要访问的存储区(请参阅https://developers.google.com/appengine/docs/php/config/php_ini#GAE_directives)< / p>
最后你可以:
包括:
<? include("gs://your-bucket/file.php"); ?>
或阅读文件内容:
<? $content = file_get_contents("gs://your-bucket/file.txt"); ?>
答案 1 :(得分:2)
CloudStorageTools::serve()是执行此操作的正确方法,原因有几个
您可以在我们的博文中看到用于生成dynamic sitemaps for WordPress的技术 - 在“创建请求处理程序”标题下,代码基本上是。
选项1。
如果你想在桶'raven-bucket'中返回文件'194-14-02-2014rec.ogg'作为对请求的响应,那么你的php脚本就好了。
<?php
use google\appengine\api\cloud_storage\CloudStorageTools;
CloudStorageTools::serve('gs://raven-bucket/194-14-02-2014rec.ogg',
['content_type' => 'audio/ogg']);
选项2。
您希望用户在存储桶'raven-bucket'中下载文件'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']);