我无法通过getPublicUrl()返回的网址查看图片。该图片通过Google Cloud Storage
直接上传到HTTP POST
,我可以在http://localhost:8000
上的数据存储区/ Blobstore查看器中看到它们。
try{
echo CloudStorageTools::getPublicUrl("gs://qbucket_first/sample.jpeg", true);
}catch ( CloudStorageException $e ) {
echo 'There was an exception creating the Image Public URL, details ' . $e->getMessage();
}
我得到的是:http://localhost:8080/_ah/gcs/qbucket_first/sample.jpeg
但是在输入该网址时收到404错误。我该如何解决这个问题?我使用的是Chrome,Mac OS X,GAELauncher v1.8.9 PHP。
如果我运行此代码:
file_put_contents("gs://qbucket_first/hello.txt", "Hello");
echo CloudStorageTools::getPublicUrl("gs://qbucket_first/hello.txt", true);
我得到了
http://localhost:8080/_ah/gcs/qbucket_first/hello.txt
输入此URL后,我可以下载文件并阅读内容。因此它适用于文本文件,这意味着Datastore正在使用本地开发。
答案 0 :(得分:1)
Python版Google App Engine也是如此。
dev_appserver.py为本地开发创建虚假云存储,当您在本地环境中向Google云端存储写入内容时,它实际上将其写入虚假空间,本地环境中的getPublicUrl()
仅获取虚假URL您当地的Google云端存储。
首次将文件上传到真实的Google云端存储中时,在本地环境中就会获得404.
第二次将文件保存在本地运行时,因此它实际写入本地伪造的GCS环境,因此它第二次运行。
答案 1 :(得分:0)
您正在使用开发服务器,这似乎是问题所在。从生产中运行它。
答案 2 :(得分:0)
图片文件名是否有空格? 如果是,请删除空格或替换为_。