Php 将图像文件上载到谷歌云存储

Php 将图像文件上载到谷歌云存储,php,google-app-engine,google-cloud-storage,image-upload,Php,Google App Engine,Google Cloud Storage,Image Upload,我试图按照谷歌云存储文档将一个图像文件上传到谷歌云存储,但没有成功 我在谷歌云存储中创建的bucket名为:test_app-111 这是我的app.yaml文件: application: test_app-111 version: 1 runtime: php api_version: 1 handlers: # Serve images as static resources. - url: /(.+\.(gif|png|jpg))$ static_files: \1 up

我试图按照谷歌云存储文档将一个图像文件上传到谷歌云存储,但没有成功

我在谷歌云存储中创建的bucket名为:test_app-111

这是我的app.yaml文件:

application: test_app-111  
version: 1
runtime: php
api_version: 1

handlers:

# Serve images as static resources.
- url: /(.+\.(gif|png|jpg))$
  static_files: \1
  upload: .+\.(gif|png|jpg)$
  application_readable: true

- url: /img.php
  script: img.php 
这是我的php文件,名为img.php

<?php

require_once 'google/appengine/api/cloud_storage/CloudStorageTools.php';
use google\appengine\api\cloud_storage\CloudStorageTools;

$options = [ 'gs_bucket_name' => 'https://storage.googleapis.com/test_app-111.appspot.com' ];
$upload_url = CloudStorageTools::createUploadUrl('/upload_handler.php', $options);

?>


<form action="<?php echo $upload_url?>" enctype="multipart/form-data" method="post">
    Files to upload: <br>
   <input type="file" name="uploaded_files" size="40">
   <input type="submit" value="Send">
</form>


gs_bucket_name应该设置为您的bucket name,而不是完整的url,即

$options = [ 'gs_bucket_name' => 'test_app-111.appspot.com' ];

您还可以使用
CloudStorageTools::getDefaultGoogleStorageBucketName()
检索默认的存储桶名称,而不是在其中硬编码。

您会遇到什么错误?我使用SDK运行它。我打开chrome,然后我选择一个图像按上传…没有显示,得到一个没有任何错误的空白页。在谷歌云存储中检查我的存储桶时,存储桶中没有图像。您的存储桶名称应该类似:
https://storage.googleapis.com/test_app-111.appspot.com
删除
gs_bucket_name
参数,它应该上传到您的默认bucket中。确保您有权限写入该bucket:另外,尝试从那里部署和上传。在本地尝试时可能存在权限问题。我更改了bucket名称,正如您在我的代码中看到的,但仍然没有更改。如果我去我的谷歌云存储并看到我的bucket,我可以手动上传文件或从控制台删除