Я хочу использовать boto3 в асинхронной функции, PythonPython

Программы на Python
Ответить
Anonymous
 Я хочу использовать boto3 в асинхронной функции, Python

Сообщение Anonymous »

Я разрабатываю веб-скребок в драматурге и хочу асинхронно загружать изображения в aws-s3.
но boto3 не является асинхронной функцией.. как это исправить? >

Код: Выделить всё

class Boto3:
def __init__(self, key, id):
self.S3 = boto3.client('s3', aws_access_key_id=aws_key_id, aws_secret_access_key=aws_secret)

def upload_stream(self, stream, bucket_name, key):
self.S3.put_object(Body=stream, Bucket=bucket_name, Key=key)

...
...

class Scraper:
def __init__(self, key, id):
self.S3 = boto3.client('s3', aws_access_key_id=id, aws_secret_access_key=key)

asnyc _save_image(res):
buffer = await res.body()
# S3.put_object is not an async function.
self.S3.put_object(
Body=buffer,
Bucket=bucket_name,
Key=bucket_key,
)

async def scrape():
playwright = await async_playwright().start()
browser = await playwright.chromium.launch( headless = True, devtools = False )
page = browser.new_page()

page.on('response', _save_image)
await page.goto('https://www.example.com')

scraper = Scraper(key, id)
asyncio.run(scraper.scrape())

self.S3.put_object: эта функция не является asnyc, поэтому нужно изменить ее с помощью асинхронной версии.
Как это исправить?
Заранее спасибо.

Подробнее здесь: https://stackoverflow.com/questions/720 ... ion-python
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»