首页 > 解决方案 > 上传对象到谷歌云存储后获取响应码

问题描述

嗨,我正在开发一个功能,在其中我想将文件从系统上传到谷歌云存储桶,这就像一个魅力,但我无法找到一种方法从云存储桶获取响应代码时文件已成功上传到云端。有人可以建议我在成功上传文件后如何取回响应代码我正在附加代码片段以进行更好的调试

private void uploadtobucket(List<MultipartFile> selectedfile, String instancekey) {
        // TODO Auto-generated method stub
        String projectid="version1pdf";
        String bucketname="windows10-shivam";
        String temp="temp";
        String path="C:/Users/Shivam/eclipse-workspace/demo.zip_expanded/demo/src/main/resources/version1pdf-996fdd32ec59.json";
        
        List<String> objectname=new ArrayList<String>();
        selectedfile.stream().forEach(selectefile->objectname.add(selectefile.getOriginalFilename()));
        Storage storage=null;
        try {
            storage = StorageOptions.newBuilder().setProjectId(projectid).setCredentials(GoogleCredentials.fromStream(new FileInputStream(path))).build().getService();
        } catch (FileNotFoundException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        } catch (IOException e1) {
            // TODO Auto-generated catch block
            e1.printStackTrace();
        }
        for(int i=0;i<objectname.size();i++) {
            
            String objectnames="temp/"+objectname.get(i);
            BlobId blobid=BlobId.of(bucketname, objectnames);
            BlobInfo blobinfo=BlobInfo.newBuilder(blobid).build();
            try {
                storage.create(blobinfo, selectedfile.get(i).getBytes());
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
        }
        
    }

任何帮助将不胜感激提前感谢

标签: google-cloud-platformjava-8google-cloud-storage

解决方案


根据关于 Object Uploads 的官方文档,要上传一个对象,您需要使用存储桶名称和对象名称发出 PUT 请求,然后使用 XML API 将对象数据放入请求正文中。

PUT Object 请求使用多个标准 HTTP 标头,因此如果请求已成功完成,则此 PUT请求返回一个响应标头,该标头设置为 200,如上面链接的示例所示。

Cloud Storage XML API 是一个 RESTful 接口,可让您以编程方式管理 Cloud Storage 数据。作为 RESTful API,它依赖于方法信息和范围信息来定义要执行的操作。有关 XML API 和 GCS 的更多信息,您可以访问链接。

此外,您可以在此处找到有关 XML API 的 HTTP 标头和查询字符串参数的更多信息,这里是 XML API 请求方法的摘要。

此外,请记住,如果您需要使用 HTML 表单(通常通过 Web 浏览器)上传对象,请尝试使用 POST 对象而不是 PUT。

我希望这个信息帮助。


推荐阅读