Импортировать выходные данные MongoDB в корзину S3 с помощью Python - PullRequest
0 голосов
/ 03 июля 2018

Имя базы данных MongoDB: - testdb,

Название коллекции: - test_collection

Команда MongoDB, которую я хочу выполнить: -

db.getCollection('test_collection').find({ request_time: { $gte: new Date('2018-06-22'), $lt: new Date('2018-06-26') }});

В документах test_collection есть ключ под названием request_time. Я хочу получить документы в диапазоне времени ('2018-06-22') и ('2018-06-26')

MongoDB username: - пользователь MongoDB Пароль: - пароль

MongoDB работает на порту 27017.

Мне нужна помощь в двух вещах. Я могу подключиться к базе данных, но как предоставить имя пользователя и пароль в случае аутентификации. Это мой код Python,

from pymongo import Connection
connection = Connection()
connection = Connection('localhost', 27017)
db = connection.testdb
collection = db.testcollection
for post in collection.find():
        print post

Другое дело,

У меня есть ведро S3, которое называется mongodoc. Я хочу запросить эту команду Монго и импортировать полученные документы в корзину S3.

Я могу подключиться к S3 bucket, используя библиотеку Boto,

from boto.s3.connection import S3Connection
conn = S3Connection(AWS_KEY, AWS_SECRET)
bucket = conn.get_bucket(mongodoc)
destination = bucket.new_key()
destination.name = filename
destination.set_contents_from_file(myfile)
destination.make_public()

Каков рекомендуемый способ достижения этого?

1 Ответ

0 голосов
/ 03 июля 2018

В случае аутентификации вы должны указать имя пользователя и пароль вместе с именем хоста,

connection=Connection(hostname="",username="",password="")

А для соединения s3 попробуйте использовать boto3, а не boto. Boto3 предоставляет широкий спектр функциональных возможностей, доступных для клиента s3, а также ресурсов. После запроса ваши результаты mongodb могут быть загружены в ваши корзины s3 в виде файлов.

...