Загрузите изображение, доступное по общедоступному URL-адресу S3, используя boto

Я работаю в веб-среде Python и могу просто загрузить файл из файловой системы на S3, используя ключ boto.set_contents_from_filename (путь / к / файлу). Тем не менее, я хотел бы загрузить изображение, которое уже есть в Интернете (скажем,https://pbs.twimg.com/media/A9h_htACIAAaCf6.jpg:large).

Должен ли я каким-то образом загрузить изображение в файловую систему, а затем загрузить его на S3, используя boto, как обычно, а затем удалить изображение?

Что было бы идеально, так это если есть способ получить ключ key.set_contents_from_file в boto или какую-либо другую команду, которая будет принимать URL и красиво передавать изображение на S3 без явной загрузки копии файла на мой сервер.

def upload(url):
    try:
        conn = boto.connect_s3(settings.AWS_ACCESS_KEY_ID, settings.AWS_SECRET_ACCESS_KEY)
        bucket_name = settings.AWS_STORAGE_BUCKET_NAME
        bucket = conn.get_bucket(bucket_name)
        k = Key(bucket)
        k.key = "test"
        k.set_contents_from_file(url)
        k.make_public()
                return "Success?"
    except Exception, e:
            return e

Используя set_contents_from_file, как указано выше, я получаю сообщение об ошибке «У строкового объекта нет атрибута« рассказать »». Используя set_contents_from_filename с URL, я получаю Нет такого файла или ошибка каталога.документация для хранения бото прекращает загрузку локальных файлов и не упоминает загрузку файлов, хранящихся удаленно.

Ответы на вопрос(8)

Ваш ответ на вопрос