Получение кода ответа после загрузки объекта в облачное хранилище Google

#google-cloud-platform #java-8 #google-cloud-storage

#google-облачная платформа #java-8 #google-облачное хранилище

Вопрос:

Привет, я работаю над функциональностью, в ней я хочу загрузить файл из системы в облачное хранилище Google, которое работает как шарм, но я не могу найти способ получить код ответа из облачного хранилища, когда файл был успешно загружен в облако. Может кто-нибудь подсказать, как я могу получить код ответа обратно, когда файл будет успешно загружен. я прилагаю фрагмент кода для лучшей отладки

 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();
            }
        }
        
    }
  

любая помощь будет оценена заранее спасибо

Ответ №1:

Согласно официальной документации по загрузке объектов, для загрузки объекта вы делаете запрос PUT, область действия которого определяется именем корзины и именем объекта, и вы помещаете данные объекта в тело запроса, используя XML API.

Запрос объекта PUT использует несколько стандартных HTTP-заголовков, поэтому этот запрос PUT возвращает заголовок ответа, который устанавливается равным 200, если запрос был успешно выполнен, как показано в примере приведенной выше ссылки.

XML API облачного хранилища — это интерфейс RESTful, который позволяет программно управлять данными облачного хранилища. Как RESTful API, он использует информацию о методах и области видимости для определения операций, которые необходимо выполнить. Для получения дополнительной информации о XML API и GCS вы можете перейти по этой ссылке.

Кроме того, здесь вы можете найти дополнительную информацию о заголовках HTTP и параметрах строки запроса для XML API, а также краткое описание методов запроса для XML API.

Кроме того, имейте в виду, что если вам нужно использовать HTML-формы (обычно через веб-браузер) для загрузки объектов, попробуйте использовать POST object вместо PUT .

Я надеюсь, что эта информация поможет.