使用boto
阅读某些大型密钥时出现问题,而且我并未真正找到任何指出我所遇到的问题的文档。我已经在s3
获得了一个关键的bson的3gb密钥,但是我从一个共同定位的ec2实例中读取了一个据说有10千兆位连接和244 gb内存的实例(一个r3.8xlarge),所以这不应该是问题。
代码转载如下,但通常想知道是否有提示表明读取实际正在进行,或者我们的连接是否存在根本性错误。
def redistribute(self):
w_queue = mp.Queue()
for bucket in self.buckets:
for key in self.conn.get_bucket(bucket).list():
documents = key.read().split('~#^#~')[:-1] # Hangs on this line
total = len(documents)
i = 0.0
documents = chunk(documents, 100)
for chunk in documents:
for line in chunk:
w_queue.put(line)
pool = mp.Pool(processes=10)
pool.apply_asynch(self.write, w_queue)
w_queue.join()
Boto功能:
def read(self, size=0):
self.open_read()
if size == 0:
data = self.resp.read() # Specifically hangs on this line
else:
data = self.resp.read(size)
if not data:
self.close()
return data