|
1 | | -import aiohttp |
2 | | - |
3 | 1 | from pubnub.endpoints.file_operations.send_file import SendFileNative |
4 | 2 | from pubnub.endpoints.file_operations.publish_file_message import PublishFileMessage |
5 | 3 | from pubnub.endpoints.file_operations.fetch_upload_details import FetchFileUploadS3Data |
6 | 4 |
|
7 | 5 |
|
8 | 6 | class AsyncioSendFile(SendFileNative): |
9 | | - def build_file_upload_request(self): |
10 | | - file = self.encrypt_payload() |
11 | | - form_data = aiohttp.FormData() |
12 | | - for form_field in self._file_upload_envelope.result.data["form_fields"]: |
13 | | - form_data.add_field(form_field["key"], form_field["value"], content_type="multipart/form-data") |
14 | | - form_data.add_field("file", file, filename=self._file_name, content_type="application/octet-stream") |
15 | | - |
16 | | - return form_data |
17 | | - |
18 | | - def options(self): |
19 | | - request_options = super(SendFileNative, self).options() |
20 | | - request_options.data = request_options.files |
21 | | - return request_options |
22 | | - |
23 | 7 | async def future(self): |
24 | | - self._file_upload_envelope = await FetchFileUploadS3Data(self._pubnub).\ |
25 | | - channel(self._channel).\ |
26 | | - file_name(self._file_name).future() |
| 8 | + self._file_upload_envelope = await FetchFileUploadS3Data(self._pubnub) \ |
| 9 | + .channel(self._channel) \ |
| 10 | + .file_name(self._file_name).future() |
27 | 11 |
|
28 | 12 | response_envelope = await super(SendFileNative, self).future() |
29 | 13 |
|
30 | | - publish_file_response = await PublishFileMessage(self._pubnub).\ |
31 | | - channel(self._channel).\ |
32 | | - meta(self._meta).\ |
33 | | - message(self._message).\ |
34 | | - file_id(response_envelope.result.file_id).\ |
35 | | - file_name(response_envelope.result.name).\ |
36 | | - should_store(self._should_store).\ |
37 | | - ttl(self._ttl).\ |
38 | | - cipher_key(self._cipher_key).future() |
| 14 | + publish_file_response = await PublishFileMessage(self._pubnub) \ |
| 15 | + .channel(self._channel) \ |
| 16 | + .meta(self._meta) \ |
| 17 | + .message(self._message) \ |
| 18 | + .file_id(response_envelope.result.file_id) \ |
| 19 | + .file_name(response_envelope.result.name) \ |
| 20 | + .should_store(self._should_store) \ |
| 21 | + .ttl(self._ttl) \ |
| 22 | + .replicate(self._replicate) \ |
| 23 | + .ptto(self._ptto) \ |
| 24 | + .custom_message_type(self._custom_message_type) \ |
| 25 | + .cipher_key(self._cipher_key).future() |
39 | 26 |
|
40 | 27 | response_envelope.result.timestamp = publish_file_response.result.timestamp |
41 | 28 | return response_envelope |
|
0 commit comments