在应用程序中创建和写入文件需要哪些策略?

0

【以下的问题经过翻译处理】 我已经成功构建、打包和启动了仿真,但现在我正在尝试使用我的仿真应用程序编写一个文件(CSV)。

在我的仿真应用程序中,机器人完成一些任务,当它完成一个任务时,它的速度、任务时间、任务成功等信息将由ROS节点记录到CSV文件中。然后,我有另一个ROS节点,可以将该日志上传到我的S3存储桶中。

然而,该节点无法创建文件。我使用终端应用程序查看了位置,但文件不存在。在仿真日志的开头,出现了以下内容:

警告:无法更改文件夹的权限[/home/robomaker/.ros/log/5670f31c-4309-11ea-a51d-0242a9fe0103],请确保父文件夹具有正确的权限。

这让我认为我的IAM角色没有足够的权限在仿真应用程序的EC2实例中写入。

我用于启动仿真应用程序的IAM角色具有以下策略:

AmazonEC2FullAccess
AmazonS3FullAccess
AWSRoboMakerFullAccess
AWSRoboMakerServiceRolePolicy
AWSCloud9Administrator
CloudWatchLogsFullAccess

我的问题是,我需要哪些其他策略才能在仿真应用程序实例中创建和写入文件?

profile picture
专家
已提问 5 个月前21 查看次数
1 回答
0

【以下的回答经过翻译处理】 您的IAM策略不会影响您的应用程序写入磁盘的能力。 /home/robomaker文件夹是您最好的选择,可以在那里写入文件,您应该有写入权限。然后,您可以通过boto3或awscli将它们上传到S3。

您的错误消息与写入权限无关。运行您的代码的用户具有对文件夹的权限,所述错误消息是因为用户无法将文件夹chown匹配其父文件夹: https://github.com/ros/ros_comm/blob/796ef0cbdc78d04938be0af96b1512f8b1803d25/tools/rosgraph/src/rosgraph/roslogging.py#L196

终端应用程序在与仿真/机器人应用程序不同的文件系统上运行,这意味着您将无法从终端GUI中看到那些应用程序创建的文件。

profile picture
专家
已回答 5 个月前

您未登录。 登录 发布回答。

一个好的回答可以清楚地解答问题和提供建设性反馈,并能促进提问者的职业发展。

回答问题的准则