0

Я был в этой теме с 4 дней. Я хочу загрузить файлы, перечисленные в Google Cloud Storage, в мое приложение. Для этого:Список файлов внутри ведра GCS в сервлете и подавать его с blob

1) Я создал свое приложение в GAE и установил проект Google Cloud Storage и создал свое ведро.

2) Теперь я хочу написать сервлет, который перечисляет файлы внутри «mybucket» и подавать его с помощью blob, который я буду читать внутри моего приложения Android (через ответ Http) и сохранить на SD-карту или память. Для этого я собрал фрагмент кода, но я не знаю, как его собрать.

Я даже не уверен, что я делаю это правильно. Любая помощь или ссылка или предложения заслуживают высокой оценки. Пожалуйста, дайте мне знать, если вам нужна дополнительная информация.

код, который будет идти в сервлет для реализации шага 2):

Storage.Objects.List listObjects = storage.objects().list("mybucket"); 
Objects objects; 
do { 
    objects = listObjects.execute(); 
    for (StorageObject object : objects.getItems()) { 
    // Do things! 
    } 
    listObjects.setPageToken(objects.getNextPageToken()); 
} while (null != objects.getNextPageToken()); 

BlobstoreService blobstoreService = BlobstoreServiceFactory.getBlobstoreService(); 
BlobKey blobKey = blobstoreService.createGsBlobKey(
    "/gs/"+"androidbucket"+"/"+filename"); 
blobstoreService.serve(blobKey, resp); 

Теперь мой вопрос относительно этого фрагмента кода, как «Storage.Objects.List» будет знать, под какой проект он выглядеть для "mybucket" ?? Поскольку я читал эту строку под моими настройками приложения в GAE «При создании новых ковшей или перечислении ведер, принадлежащих проекту, вы должны указать HTTP-заголовок x-goog-project-id, чтобы определить, какой проект вы используете».

EDIT: Также я не могу скомпилировать свой сервлет на «Storage.Objects.List». Я загрузил Cloud Storage API по этой ссылке: https://code.google.com/p/google-api-java-client/wiki/APIs#Cloud_Storage_API .. Спасибо!

ответ

1

Ваша цитата:

При создании новых ведер, или перечисления ведра, принадлежащем проектом, необходимо указать заголовок HTTP х-GOOG-проект-ID, чтобы определить, какой проект вы с помощью.

Это относится к листингу ведра. Вы являетесь агентом объектов в ведре.

Если вы извлекали список ведер, вам необходимо передать идентификатор проекта. reference for buckets.list показывает, как это сделать:

Storage.Buckets.List listBuckets = storage.buckets().list("myproject"); 
+0

спасибо @ jterrace..that очищает мой confusion..Also Я не могу скомпилировать «Storage.Object.List» в моих servlet..I загрузили Cloud Storage API, но не уверен, какой файл jar мне нужно добавить в мой проект сервлета. Ссылка на API облачных хранилищ: https: //code.google.com/p/google-api-java-client/wiki/APIs#Cloud_Storage_API –