def store_to_10_rss(tempDF):
s3 = boto3.resource('s3')
try:
s3.Object('abcData', 'cr/working-files/unstructured_data/news-links/10_rss.csv').load()
except botocore.exceptions.ClientError as e:
if e.response['Error']['Code'] == "404":
print('\nThe object does not exist.')
tempDF.to_csv('10_rss.csv')
s3.Object('abcData/cr/working-files/unstructured_data/news-links/', '10_rss.csv').upload_file(Filename='10_rss.csv')
else:
print('\nSomething else has gone wrong.')
raise
else:
print('\nThe object does exist.')
在我的S3中,有多个存储桶。我想去abcdatabucket。在这个桶中,我想转到cr文件夹,然后转到-->;工作文件文件夹,然后转到-->;非结构化数据文件夹,然后转到-->;新闻链接文件夹。在“新闻链接”文件夹中,我想检查是否存在csv“10_rss”。如果不存在,我希望将传递的数据帧“tempDF”存储在csv中,并将此文件上载到路径“abcData/cr/工作文件/非结构化数据/新闻链接/”。 但这给了我一个错误: ParamValidationError:参数验证失败: “桶名必须匹配regex“^[a-zA-Z0-Z0-10-9-9-10-9-10-10-10-10-10-10-10-10-10-10-10-9-[a-zA-Z0-9-10-9-10-9-10-5-9-[a-zA-10-10-5-10-10-10-10-5..[a-zA-10.[10.[10.[9.[9.[9.[10-zA-zA-10-10-10-10-10-10-10-10-10-10-10-10-10-10-10-10-10-10-10-10-10-10-10-10-9-9-9-9-9-9-9-9-9-9-9-9-9-9-9-9-9-9-9-9-9-9-9-9-9-9-9-9-9-.[/:]accesspoint[/:][a-zA-Z0-9-]{1,63}$”
任何帮助都将不胜感激
请更正AWS S3上传文件的语法。请参阅AWS中的these文件上载示例。此外,您还可以参考AWS boto3 API guide以了解有关相同内容的更多详细信息
简而言之,在您当前的错误和示例代码中,您使用了AWS S3 bucket键或AWS S3文件夹与AWS S3 bucket name的组合,这对于
upload_file
boto3 api来说不应该是这样。AWS S3存储桶名称,即sgfr01data
必须是单独的参数相关问题 更多 >
编程相关推荐