Amazon s3 使用python(3.8)从AmazonS3获取文件时出错

Amazon s3 使用python(3.8)从AmazonS3获取文件时出错,amazon-s3,boto3,pickle,python-3.8,Amazon S3,Boto3,Pickle,Python 3.8,我试图从AmazonS3获取数据并将其存储到一个变量(如.pkl文件)中 我得到了以下错误: 错误: expected str, bytes or os.PathLike object, not _io.BytesIO S3代码 class S3Mgr: def __init__(self,bucketName): self.aws_access_key_id= CONFIG.S3[0] self.aws_secret_access_key = CONF

我试图从AmazonS3获取数据并将其存储到一个变量(如.pkl文件)中

我得到了以下错误:

错误:

expected str, bytes or os.PathLike object, not _io.BytesIO
S3代码

class S3Mgr:
    def __init__(self,bucketName):
        self.aws_access_key_id= CONFIG.S3[0]
        self.aws_secret_access_key = CONFIG.S3[1]
        self.region_name = CONFIG.S3[2]
        self.bucketName = bucketName

    def __connect(self):
        self.s3 = boto3.client(
            's3',
            aws_access_key_id=self.aws_access_key_id,
            aws_secret_access_key=self.aws_secret_access_key,
            region_name=self.region_name
            )
    def retrieveModel(self,fileName):
        self.__connect()
        a = self.s3.download_fileobj(Bucket=self.bucketName, Key="fcm/project/"+str(fileName))
        return a['Body'].read()
pickle代码

import pickle
from io import BytesIO

S3obj = S3mgr("mybucket")
model = S3obj.retrieveModel("model.pkl")

data = BytesIO(model)
model = pickle.load(data)

prediction = model.predict(inputArray)

上面的inputArray是输入数组。

试试这个,在s3Mgr类的
检索模型
方法中将
下载文件对象
替换为
获取对象

大概是这样的:

def retrieveModel(self,fileName):
        self.__connect()
        a = self.s3.get_object(Bucket=self.bucketName, Key="fcm/project/"+str(fileName))
        return a['Body'].read()
我希望它能起作用。如果有任何进展或需要任何帮助,请Ping


干杯,非常感谢你的帮助!!它工作了。!!