Возможно получить почтовое вложение в Blobstore Механизма Приложения?

Мне удалось получить почтовые вложения на Amazon S3 от входящей электронной почты GAE, но делает любой знает, что техника получает вложение, как изображение, в blobstore.

Любая справка очень ценилась бы.

Код до сих пор (со справкой от Alex)

upload_url = blobstore.create_upload_url('/upload')
msg = MIMEMultipart()
msg.set_type('multipart/form-data')
msg.set_payload({'file': content})
result = urlfetch.fetch(upload_url, payload=urllib.urlencode(msg), method=urlfetch.POST, headers={'Content-Type': 'multipart/form-data'})
6
задан Effisfor 28 March 2010 в 15:01
поделиться

1 ответ

Чтобы получать почту в GAE app, следуйте документам здесь : в частности, вы получите экземпляр класса InboundEmailMessage с атрибутом attachments , который, как я цитирую:

список прикрепленных файлов, возможно, пуст. Каждое значение в списке представляет собой кортеж из двух элементов: имени файла и содержимого файла.

Затем в этих документах GAE вы «создаете URL загрузки» и в своем обработчике загрузки (обычно это подкласс BlobstoreUploadHandler ) вы используете get_upload чтобы получить экземпляры BlobInfo и поместить их метаданные куда-нибудь, что позже позволит вам получить их обратно, если это может потребоваться вашему приложению.

Наконец, вы ПУБЛИКАЕТЕ данные (которые у вас есть из вложений , см. Выше) на свой собственный недавно созданный «URL загрузки», например с использованием urlfetch.fetch method-POST и полезной нагрузкой в ​​стандартной кодировке application / x-www-form-urlencoded для "формы", которую пользователь были бы заполнены, если бы они загружали данные напрямую, что является «нормальным» способом размещения данных в хранилище больших двоичных объектов - например, вы можете использовать urllib.urlencode для подготовки полезной нагрузки).

Самостоятельная POST будет использовать другой экземпляр вашего приложения для «приема» данных в хранилище больших двоичных объектов (в то время как экземпляр, получивший электронное письмо, ожидает, поскольку выборка является синхронной).

11
ответ дан 8 December 2019 в 18:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: