PHP Google App Engine从云存储中永久删除图像

时间:2014-06-13 05:56:33

标签: php google-app-engine google-cloud-storage

我正在使用GAE版本1.9.0,我想从数据存储中删除图像并将其他图像上传到其位置。这就是我现在正在做的事情。

unlink("gs://my_storage/images/test.jpg");
move_uploaded_file($_FILES['image']['tmp_name'],'gs://my_storage/images/test.jpg');

然后我想获取最新上传图片的图片服务网址,我这样做。

$image_link = CloudStorageTools::getImageServingUrl("gs://my_storage/images/test.jpg");

问题是,当删除图像的名称(“test.jpg”)和上传的图像(“test.jpg”)相同时,旧文件服务当我调用新上传的文件(我认为它已缓存。)

无论如何我可以在不缓存的情况下永久删除此文件吗?

2 个答案:

答案 0 :(得分:2)

您应该删除原始服务网址,然后再创建具有相同名称的网址。

您可以使用CloudStorageTools中的deleteImageServingUrl()方法执行此操作。

答案 1 :(得分:0)

这是在php laravel中执行的操作。

 $object = $post_media->media_cloud;
 $objectname = substr($object,48,100); 
 $bucket = Storage::disk('gcs')->delete($objectname);
  1. 在$ object中,我从数据库获取了Google云图像网址
  2. 然后,我们仅通过该子目录从该URL中获取对象名称。
  3. 由于您在配置存储类中给出的名称为 Storage :: disk('gcs')

因此,这将通过获取对象名来调用功能删除

希望它可以帮助任何人。

注意:对于多个图像,要么传递对象数组,要么对foreach循环重复它。