add content type for s3

This commit is contained in:
2021-03-17 13:05:54 +03:00
parent 178310d844
commit ffc9c42370
3 changed files with 20 additions and 9 deletions

View File

@@ -4,6 +4,7 @@ import time
from tempfile import TemporaryDirectory
import boto3
import filetype
from django.db import models
from telegram import Update, InlineKeyboardMarkup, InlineKeyboardButton
from telegram.ext import CallbackContext, Dispatcher, MessageHandler, Filters
@@ -47,8 +48,9 @@ class RobotBotModuleConfig(TelegramBotModuleConfig):
with TemporaryDirectory() as d:
file_path = os.path.join(d, filename)
file.download(file_path)
tp = filetype.guess(file_path)
s3 = boto3.client('s3', aws_access_key_id=config.aws_access_key_id, aws_secret_access_key=config.aws_secret_access_key)
s3.upload_file(file_path, config.s3_bucket, filename, ExtraArgs={'ACL': 'public-read'})
s3.upload_file(file_path, config.s3_bucket, filename, ExtraArgs={'ACL': 'public-read', 'ContentType': tp.mime})
file_url = f'https://{config.s3_bucket}.s3.amazonaws.com/{filename}'
if update.message.photo:
markup.inline_keyboard = [[