Alfresco社区版Share端无法上传文件报错问题求助
根因确认
从Catalina日志可以明确核心错误为:
org.alfresco.service.cmr.repository.ContentIOException: 07290412 Failed to create directory for file storage: /mnt/alf_data/alf_data/contentstore/2021/8/29/22/34
你之前添加的三个转换服务关闭配置与当前文件系统写入权限问题无关,因此无法解决问题。
排查步骤
手动验证alfresco用户真实写入权限
切换到alfresco用户尝试手动创建目录,避免仅看权限配置的误判:# 切换到alfresco用户 sudo su - alfresco # 尝试在目标存储路径创建测试目录 mkdir -p /mnt/alf_data/alf_data/contentstore/test_write如果执行报错,说明权限配置未生效,同时检查上层目录的执行权限(进入目录的必要权限):
ls -ld /mnt /mnt/alf_data /mnt/alf_data/alf_data /mnt/alf_data/alf_data/contentstore所有父目录需要至少为alfresco用户开放执行权限,contentstore目录属主建议为alfresco:alfresco,权限不低于755。
检查EFS挂载参数
执行以下命令查看当前EFS挂载配置:mount | grep nfs cat /etc/fstab常见问题为挂载时启用了
root_squash或all_squash参数,会将用户映射为匿名用户导致无写入权限;同时要确认EFS挂载配置中的uid、gid和服务器上alfresco用户的uid、gid一致:# 查看alfresco用户的uid、gid id alfresco验证AppArmor限制
Ubuntu默认启用AppArmor,可能会限制Tomcat/Alfresco进程对EFS挂载目录的写入权限,临时关闭AppArmor测试:systemctl stop apparmor # 重启Alfresco服务后测试上传如果关闭后可以正常上传,说明需要新增AppArmor规则允许Alfresco访问对应EFS目录。
检查存储资源占用
确认EFS没有满容量或占满inode:# 查看容量占用 df -h /mnt/alf_data # 查看inode占用 df -i /mnt/alf_data校验Alfresco存储路径配置
检查alfresco-global.properties中dir.contentstore配置项,确认路径拼写与实际挂载路径完全一致,没有相对路径或拼写错误。
解决方案
- 权限配置错误:递归修改存储目录的属主和权限
chown -R alfresco:alfresco /mnt/alf_data/alf_data chmod -R 755 /mnt/alf_data/alf_data - 挂载参数错误:修改
/etc/fstab中EFS挂载行,添加no_root_squash和对应uid、gid参数,示例:
修改后重新挂载生效:fs-xxxxxx.efs.region.amazonaws.com:/ /mnt/alf_data nfs4 nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,no_root_squash,uid=1001,gid=1001 0 0mount -o remount /mnt/alf_data - 临时应急:手动创建缺失的目录层级,先恢复上传功能再排查根因
mkdir -p /mnt/alf_data/alf_data/contentstore/2021/8/29/22/34 chown alfresco:alfresco /mnt/alf_data/alf_data/contentstore/2021/8/29/22/34
内容的提问来源于stack exchange,提问作者gp_
相关产品推荐
相关产品推荐

