This repository was archived by the owner on Dec 29, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 228
This repository was archived by the owner on Dec 29, 2022. It is now read-only.
InsertPhotoSimple - [Errno 32] Broken Pipe #53
Copy link
Copy link
Open
Description
I am using TouchSelfie to create a simple photobooth. It should allow me to upload photos to a Google photos album, and was working yesterday. Today the uploading feature seemed to stop.
I can query my photo albums successfully using the following example code:
photos = client.GetFeed(album_url)
for photo in photos.entry:
print 'Photo title:', photo.title.text
Since the photos in that album get printed, I presume my credentials are working fine.
But if I try to upload a photo using the InsertPhotoSimple function I get error: [Errno 32] Broken pipe The InsertPhotoSimple code I am using is straight from the API Documentation
client.InsertPhotoSimple(album_url, 'Test Photo', 'Testing API', "myphoto.png", content_type='image/png')
I can't figure it out what happened! My codebase didn't change, but now I am getting errors. Any help is appreciated!
The full stack trace:
client.InsertPhotoSimple(album_url, 'AYYY', 'Test API', "logo.png", content_type='image/png')
---------------------------------------------------------------------------
error Traceback (most recent call last)
<ipython-input-72-ffbac228ff15> in <module>()
----> 1 client.InsertPhotoSimple(album_url, 'AYYY', 'Test API', "logo.png", content_type='image/png')
/usr/lib/python2.7/dist-packages/gdata/photos/service.pyc in InsertPhotoSimple(self, album_or_uri, title, summary, filename_or_handle, content_type, keywords)
468 metadata.media.keywords = gdata.media.Keywords(text=keywords)
469 return self.InsertPhoto(album_or_uri, metadata, filename_or_handle,
--> 470 content_type)
471
472 def UpdatePhotoMetadata(self, photo):
/usr/lib/python2.7/dist-packages/gdata/photos/service.pyc in InsertPhoto(self, album_or_uri, photo, filename_or_handle, content_type)
424 try:
425 return self.Post(photo, uri=feed_uri, media_source=mediasource,
--> 426 converter=gdata.photos.PhotoEntryFromString)
427 except gdata.service.RequestError, e:
428 raise GooglePhotosException(e.args[0])
/usr/lib/python2.7/dist-packages/gdata/service.pyc in Post(self, data, uri, extra_headers, url_params, escape_params, redirects_remaining, media_source, converter)
1233 extra_headers=extra_headers, url_params=url_params,
1234 escape_params=escape_params, redirects_remaining=redirects_remaining,
-> 1235 media_source=media_source, converter=converter)
1236
1237 def PostOrPut(self, verb, data, uri, extra_headers=None, url_params=None,
/usr/lib/python2.7/dist-packages/gdata/service.pyc in PostOrPut(self, verb, data, uri, extra_headers, url_params, escape_params, redirects_remaining, media_source, converter)
1300 server_response = self.request(verb, uri,
1301 data=[multipart[0], data_str, multipart[1], media_source.file_handle,
-> 1302 multipart[2]], headers=extra_headers, url_params=url_params)
1303 result_body = server_response.read()
1304
/usr/lib/python2.7/dist-packages/atom/__init__.pyc in optional_warn_function(*args, **kwargs)
90 if ENABLE_V1_WARNINGS:
91 warnings.warn(warning, DeprecationWarning, stacklevel=2)
---> 92 return f(*args, **kwargs)
93 # Preserve the original name to avoid masking all decorated functions as
94 # 'deprecated_function'
/usr/lib/python2.7/dist-packages/atom/service.pyc in request(self, operation, url, data, headers, url_params)
183 auth_token = self.token_store.find_token(url)
184 return auth_token.perform_request(self.http_client, operation, url,
--> 185 data=data, headers=all_headers)
186
187 request = atom.v1_deprecated(
/usr/lib/python2.7/dist-packages/atom/http_interface.pyc in perform_request(self, http_client, operation, url, data, headers)
146 headers=None):
147 """For the GenericToken, no Authorization token is set."""
--> 148 return http_client.request(operation, url, data=data, headers=headers)
149
150 def valid_for_scope(self, url):
/usr/lib/python2.7/dist-packages/atom/http.pyc in request(self, operation, url, data, headers)
167 if isinstance(data, list):
168 for data_part in data:
--> 169 _send_data_part(data_part, connection)
170 else:
171 _send_data_part(data, connection)
/usr/lib/python2.7/dist-packages/atom/http.pyc in _send_data_part(data, connection)
353 binarydata = data.read(100000)
354 if binarydata == '': break
--> 355 connection.send(binarydata)
356 return
357 else:
/usr/lib/python2.7/httplib.pyc in send(self, data)
853 datablock = data.read(blocksize)
854 else:
--> 855 self.sock.sendall(data)
856
857 def _output(self, s):
/usr/lib/python2.7/ssl.pyc in sendall(self, data, flags)
699 count = 0
700 while (count < amount):
--> 701 v = self.send(data[count:])
702 count += v
703 return amount
/usr/lib/python2.7/ssl.pyc in send(self, data, flags)
665 self.__class__)
666 try:
--> 667 v = self._sslobj.write(data)
668 except SSLError as x:
669 if x.args[0] == SSL_ERROR_WANT_READ:
error: [Errno 32] Broken pipe
Metadata
Metadata
Assignees
Labels
No labels