[英]Google Cloud Storage with a service account in Java - 403 Caller does not have storage.objects.list access to bucket
[英]Uploading objects to google cloud storage bucket java
我想將簡單的圖像文件上傳到Google雲存儲時,上傳到根存儲桶的過程很順利,但是當我嘗試將圖像上傳到存儲桶中的文件夾時,它失敗了
以下是我這樣做的代碼
static Storage sStorage;
public static void uploadFileToServer(Context context, String filePath) {
Storage storage = getStorage(context);
StorageObject object = new StorageObject();
object.setBucket(BUCKET_NAME);
File sdCard = Environment.getExternalStorageDirectory();
File file = new File(sdCard + filePath);
try {
InputStream stream = new FileInputStream(file);
String contentType = URLConnection.guessContentTypeFromStream(stream);
InputStreamContent content = new InputStreamContent(contentType, stream);
Storage.Objects.Insert insert = storage.objects().insert(BUCKET_NAME, null, content);
insert.setName(file.getName());
insert.execute();
} catch (Exception e) {
e.printStackTrace();
}
}
我曾嘗試將[PARENT_BUCKET]/[CHILD_FOLDER]
類的存儲桶名稱放入,但它不起作用
GCS具有平面名稱空間,“文件夾”只是客戶端支持的抽象(基本上,將對象名稱中的“ /”字符視為文件夾定界符)。
因此,要上傳到文件夾,您應該僅將存儲桶名稱放在請求的存儲桶字段中,然后將該文件夾放在對象字段的開頭。 例如,要上載到存儲桶“ my-bucket”,文件夾“ my-folder”和文件夾內文件“ file”,您需要將存儲桶名稱設置為“ my-bucket”,並將對象名稱設置為“ my-folder /文件'。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.