Amazon s3 使用python(3.8)从AmazonS3获取文件时出错
我试图从AmazonS3获取数据并将其存储到一个变量(如.pkl文件)中 我得到了以下错误: 错误: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
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
干杯,非常感谢你的帮助!!它工作了。!!