Python 亚马逊s3文件下载“;TypeError:应为字符串或字节,如object“;
我正在尝试使用带Python的S3下载一个“csv”文件,但它返回一个关于行Python 亚马逊s3文件下载“;TypeError:应为字符串或字节,如object“;,python,amazon-s3,Python,Amazon S3,我正在尝试使用带Python的S3下载一个“csv”文件,但它返回一个关于行S3的错误。下载文件(bucket、origin、path): TypeError:应为类似字符串或字节的对象 有人知道为什么会这样吗 from boto3.session import Session import boto3 import sys ACCESS_KEY="abc" SECRET_KEY="xxx" path="./ListadePrecios.cs
S3的错误。下载文件(bucket、origin、path)
:
TypeError:应为类似字符串或字节的对象
有人知道为什么会这样吗
from boto3.session import Session
import boto3
import sys
ACCESS_KEY="abc"
SECRET_KEY="xxx"
path="./ListadePrecios.csv"
origin="public/excel/Nombre.csv"
session = Session(aws_access_key_id=ACCESS_KEY,
aws_secret_access_key=SECRET_KEY)
s3 = session.resource("s3")
bucket = s3.Bucket("my_bucket")
def main(argv):
#Descargar archivo
s3 = boto3.client("s3", aws_access_key_id=ACCESS_KEY, aws_secret_access_key=SECRET_KEY)
s3.download_file(bucket, origin, path)
if __name__ == "__main__":
main(sys.argv[1:])
错误截图
问题是您正在将
Bucket
对象传递到:
s3.download_file(bucket, origin, path)
而是传递bucket名称:
s3.download_file("my_bucket", origin, path)
下载文件(Bucket、Key、Filename、ExtraArgs=None、Callback=None、Config=None)
将S3对象下载到文件中
用法:
import boto3
s3 = boto3.resource('s3')
s3.meta.client.download_file('mybucket', 'hello.txt', '/tmp/hello.txt')
与S3Transfer的download_file()
方法类似,只是参数大写。详细的例子可以在S3Transfer的用法中找到
参数
- Bucket(str)——要从中下载的Bucket的名称
- 密钥(str)--要从中下载的密钥的名称
- Filename(str)——要下载到的文件的路径
- ExtraArgs(dict)——可以传递给客户端操作的额外参数
- 回调(函数)——一种方法,在下载过程中定期调用传输的字节数
- Config(boto3.s3.transfer.TransferConfig)——执行传输时要使用的传输配置
您的问题在于
下载文件的第一个参数
下载_文件(Bucket、Key、Filename、ExtraArgs=None、Callback=None、Config=None)
参数包括:
- Bucket(str)——要从中下载的Bucket的名称
- Key(str)——要从中下载的密钥的名称
- Filename(str)——要下载到的文件的路径
s3.download_file(bucket, origin, path)
与
将错误粘贴为问题中的文本,以便我们可以看到它,它将永远保留在问题中。尝试在
下载文件中用替换bucket
“my_bucket”
聪明多简单,谢谢,现在在ʻobj.delete()部分,正确吗?准备好的问题解决了,现在我正在解决delete fileready问题解决了,现在我正在解决删除文件的问题
s3.download_file("my_bucket", origin, path)