Fixed
Status Update
Comments
jf...@google.com <jf...@google.com> #2
Thank you for your detailed report!
We'll take a closer look and let you know if we have any updates.
We'll take a closer look and let you know if we have any updates.
jf...@google.com <jf...@google.com> #3
We have just clarified the resumable upload protocol in our documentation here: https://developers.google.com/photos/library/guides/resumable-uploads
Note that this is slightly different from our previous protocol for resumable uploads. Please let us know if you are still having trouble following this new guide. Our apologies, but the general flow should be very similar to the previous definition.
Note that this is slightly different from our previous protocol for resumable uploads. Please let us know if you are still having trouble following this new guide. Our apologies, but the general flow should be very similar to the previous definition.
Description
I understand that each request to getItems() may not return the full pageSize amount, and that perhaps some results might even be empty. But there are way too many empty results.
When scanning my own library, I get a couple of thousand items normally, with a reasonable number of results per page. But then I get approximately 100 pages which are completely empty. This takes around a minute or so, and cannot possibly represent what is actually going on for the system to find the images (if I was scrolling on Google Photos and it took a minute to load the next images, I would correctly assume that something was broken.
I have tried with smaller page sizes to check if that is the issue, but with no improvement.
A small code sample that reliably reproduces the issue. The sample should run as-is or with minimal setup.
Could ultimately be tested from
SearchMediaItemsResponse mediaResponse = null;
try {
while (mediaResponse == null
|| !TextUtils.isEmpty(mediaResponse.getNextPageToken())) {
mediaResponse = mService
.mediaItems()
.search(new SearchMediaItemsRequest()
.setPageSize(100)
.setPageToken(mediaResponse != null ? mediaResponse.getNextPageToken() : null)
)
.setFields(MEDIA_ITEM_FILTER)
.execute();
...
}
} catch (IOException e) {
e.printStackTrace();
}
The calls to the API that lead to the error. Include the sequence of calls, including request headers and body.
Do not include any personal information, authentication secrets, media item or album IDs.
Standard calls as per the above code. Simply repeated calls to