执行get\u bu时BOTO抛出UnboundLocalError

2024-05-01 21:46:24 发布

您现在位置:Python中文网/ 问答频道 /正文

我正试图上传一个大文件约46Gb的文件到S3从电子病历使用boto。 我写的代码是

>>> import math, os
>>> import boto
>>> from filechunkio import FileChunkIO

# Connect to S3
>>> c = boto.connect_s3()
>>> b = c.get_bucket('mybucket')

这给我带来了一个错误:

UnboundLocalError: local variable 'region_name' referenced before assignment

您可以在以下链接中找到相同错误的整个堆栈:

https://github.com/boto/boto/issues/2624

有人能告诉我这个问题的解决方法吗?你知道吗


Tags: 文件代码fromimports3osconnect错误
1条回答
网友
1楼 · 发布于 2024-05-01 21:46:24

我使用的是boto.s3.connection.S3Connection,效果非常好。你知道吗

这是我的代码,它可能会帮助您:

import os
from boto.s3.connection import S3Connection
from contextlib import contextmanager

@contextmanager
def connect_to_s3(access_key=ACCESS_KEY, secret_key=SECRET_KEY,
                  use_sigv4=False):
    kwargs = {
        'aws_access_key_id': access_key,
        'aws_secret_access_key': secret_key
    }
    if use_sigv4:
        os.environ['S3_USE_SIGV4'] = 'True'
        kwargs['host'] = 's3.amazonaws.com'
    else:
        os.environ['S3_USE_SIGV4'] = ''
    conn = S3Connection(**kwargs)
    try:
        yield conn
    finally:
        conn.close()

我在用boto==2.40.0

相关问题 更多 >