【问题标题】:Google Cloud storage Java XML API file upload and mark uploaded file public谷歌云存储 Java XML API 文件上传并将上传的文件标记为公开
【发布时间】:2015-04-20 12:12:39
【问题描述】:

我正在使用Google Cloud storage Java XML API 将文件从客户端上传到 Google Cloud Bucket,文件已成功上传,但我希望上传的文件可以公开访问(希望文件具有公开读取权限),如何在上传的文件上设置public-read ACL,从而使其可公开访问。这是我用过的代码

httpTransport = GoogleNetHttpTransport.newTrustedTransport();


String p12Content = Files.readFirstLine(new File("key.p12"), Charset.defaultCharset());
            Preconditions.checkArgument(!p12Content.startsWith("Please"), p12Content);
            //[START snippet]
            // Build a service account credential.
Path path = Paths.get(MyFilePath);
    byte[] byteArray = java.nio.file.Files.readAllBytes(path);
HttpContent contentsend = new ByteArrayContent("text/plain", byteArray );

GoogleCredential credential = new GoogleCredential.Builder().setTransport(httpTransport)
                .setJsonFactory(JSON_FACTORY)
                .setServiceAccountId(SERVICE_ACCOUNT_EMAIL)
                .setServiceAccountScopes(Collections.singleton(STORAGE_SCOPE))
                .setServiceAccountPrivateKeyFromP12File(new File("key.p12"))

                .build();
            // Set up and execute a Google Cloud Storage request.
String URI = "https://storage.googleapis.com/" + BUCKET_NAME + "/myfile";
HttpRequestFactory requestFactory = httpTransport.createRequestFactory(credential);
GenericUrl url = new GenericUrl(URI);
HttpRequest request = requestFactory.buildPutRequest(url,contentsend);
HttpResponse response = request.execute();

【问题讨论】:

    标签: java google-cloud-storage


    【解决方案1】:

    包含一个值为“public-read”的“x-goog-acl”标头,如下所示:

    request.setHeader("x-goog-acl", "public-read");
    

    有关更多信息,您可以查看以下文档页面:

    https://cloud.google.com/storage/docs/reference-headers#xgoogacl https://cloud.google.com/storage/docs/access-control

    【讨论】:

    • 我很想知道如何使用带有 Storage.Objects.Insert 对象的 Google JSON API 来做到这一点。
    • 将“predefinedAcl”参数设置为“publicRead”。或者,您可以使用请求正文的“acl”部分来指定特定的 ACL。
    猜你喜欢
    • 1970-01-01
    • 2019-03-19
    • 2014-08-17
    • 1970-01-01
    • 1970-01-01
    • 2014-08-03
    • 2018-10-10
    • 2019-06-09
    • 2015-02-28
    相关资源
    最近更新 更多