TransWikia.com

Cloud Storage内のファイルが削除できない

スタック・オーバーフロー Asked by tarofess on September 1, 2021

Cloud Storageにアップロードしている画像を削除しようとすると、以下のようなエラーが出て削除ができません。

Aws  S3  Exception  S3Exception
Error executing "ListObjects" on "myproject.appspot.com" AWS HTTP error: Client error: `GET myproject.appspot.com` resulted in a `400 Bad Request` response: <?xml version='1.0' encoding='UTF-8'?><Error><Code>InvalidArgument</Code><Message>Invalid argument.</Message><Details>In (truncated...) InvalidArgument (client): Invalid argument. - <?xml version='1.0' encoding='UTF-8'?><Error><Code>InvalidArgument</Code><Message>Invalid argument.</Message><Details>Invalid query parameter(s): [encoding-type]</Details></Error>

現在LaravelのFileSystemを使ってCloud Storageとのやり取りを行なっています。
以下のコードで画像のアップロードはできています。

$fileName = 'article/'.uniqid(mt_rand());
$disk = Storage::disk('gcp');
$disk->put($fileName, file_get_contents($image));

そして削除は以下のように行なっています。

Storage::disk('gcp')->delete([$filePath->image]);

$filePath->imageには https://storage.googleapis.com/myproject.appspot.com/article/123456abcd といったフルパスが入っています。
なぜアップロードはできるのに削除ができないのでしょうか?
Cloud Storage内のデータを削除するには何か設定をしなければいけないのでしょうか?
どなたか分かる方がいれば教えていただきたいです。よろしくお願いします。

One Answer

the prefix you specified includes "https://...."
It should just include the object name prefix, not the full URL.

Also, is myproject.appspot.com the name of your bucket? I'm wondering if you wrote that to indicate the project name.

Also, there is no encoding-type parameter for this request.

The documentation is at https://cloud.google.com/storage/docs/xml-api/get-bucket-list

Answered by Mike Schwartz on September 1, 2021

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP