Elastic Beanstalk访问本地磁盘

时间:2015-12-30 02:59:10

标签: node.js amazon-web-services amazon-ec2 elastic-beanstalk

尝试在EC2实例上使用Node.js打开文件时,收到错误:

{ "errno": -13, "code": "EACCES", "syscall": "open", "path": "/tmp/uploads/50a4386c-5cdf-44ec-acb9-5d064b4be96a.jpeg" }

根据node docs EACCES在“尝试以文件访问权限禁止的方式访问文件”时发生。这表明运行Node.js应用程序的用户无权访问/tmp。我也尝试写入/var/app/current,这是Elastic Beanstalk部署Node.js应用程序源的地方。这两个位置都不可写。

如何写入Elastic Beanstalk部署的Amazon Linux EC2实例的本地磁盘?

相关实例信息:

EBS-optimized: False Root device type: ebs Root device: /dev/sda1 Block devices: /dev/sda1

已应用的政策:

AmazonEC2FullAccess AWSElasticBeanstalkFullAccess

/tmp属性:

drwxrwxrwt 20 root root 4096 Dec 30 03:50 tmp

1 个答案:

答案 0 :(得分:1)

原来里面的uploads目录是使用

制作的

mkdirp('/tmp/uploads', { mode : 0o777 })docs

拥有权限:

drwxr-xr-x 2 root root 4096 Dec 30 01:37 uploads

奇怪的是,创建目录的用户(运行节点进程的用户)仍然无法访问该目录。 chmod 777 /tmp/uploads解决了这个问题。