Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/253.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP谷歌应用引擎从云存储中永久删除图像_Php_Google App Engine_Google Cloud Storage - Fatal编程技术网

PHP谷歌应用引擎从云存储中永久删除图像

PHP谷歌应用引擎从云存储中永久删除图像,php,google-app-engine,google-cloud-storage,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'); 然后我想得到最新上传图像的图像服务URL,我就是这样做的 $image_link = CloudStorageTools::getIm

我正在使用GAE版本1.9.0,我想从数据存储中删除一个图像,并将另一个图像上载到其位置。我现在就是这样做的

unlink("gs://my_storage/images/test.jpg");
move_uploaded_file($_FILES['image']['tmp_name'],'gs://my_storage/images/test.jpg');
然后我想得到最新上传图像的图像服务URL,我就是这样做的

$image_link = CloudStorageTools::getImageServingUrl("gs://my_storage/images/test.jpg");
问题是,当删除的图像(“test.jpg”)和上载的图像(“test.jpg”)的名称相同时,当我调用新上载的文件(我认为它是缓存的)时,会提供旧文件


我是否可以永久删除此文件而不缓存它

在创建另一个同名URL之前,您可能应该删除原始的服务URL


CloudStorageTools中有一个deleteMageServingurl()方法,您可以使用它来执行此操作。

这里介绍如何在php laravel中执行此操作

 $object = $post_media->media_cloud;
 $objectname = substr($object,48,100); 
 $bucket = Storage::disk('gcs')->delete($objectname);
  • 在$object中,我从db中获得了谷歌云图像url
  • 然后,我们通过substr从该url中只获取对象名
  • 因为您在配置存储类中给出了Storage::disk('gcs')
  • 因此,这将调用函数delete,方法是使用objectname

    希望它能帮助任何人


    注意:对于多个图像,可以传递一个对象数组,也可以对每个循环重复该数组

    我认为这是一个缓存问题。看到这个答案:谢谢你的回复Peter,但是如果缓存被禁用,那将是一个问题,对吗?好像加载图像要花很多时间。是否有办法删除图像和缓存,以便在删除图像之前一直提供缓存?是否清除自己的浏览器缓存?是的。这是我做的第一件事。