透過terminal用gsutil上傳圖片並不是難事,只要透過網頁取得OAuth2 Key後,就可以上傳了。
不過當我想在Apache+PHP 的環境下使用 gsutil ,就會遇到權限問題。
譬如在PHP下想要上傳檔案
<?php
exec("gsutil cp /tmp/test.txt gs://bucket/");
?>
會得到底下的錯誤
**OSError: [Errno 13] Permission denied: '/var/www/.config'**
如果用暴力法修改權限(chmod 777 /var/www/),還是會遇到gsutil報錯
**AccessDeniedException: 403 Insufficient Permission
**CommandException: 1 files/objects could not be transferred.
比較好的方式還是用google提供的Google API Client Library for PHP
可惜目前還是beta版,範例很少,
這邊附上我試出的結果
1. 先申請Server Account
接著按"Generate new P12 key"
2. 把這個檔案放到Server
3. 接著修改下面的sample code
這個範例在上傳同時,順便會把檔案權限設為Public Read
Sample Code:
https://github.com/Brandon-Lin/google-cloud-storage/blob/master/upload_file_using_service_account.php
沒有留言:
張貼留言