Python kubernetes上的SFTP许可被拒绝问题

Python kubernetes上的SFTP许可被拒绝问题,python,kubernetes,sftp,Python,Kubernetes,Sftp,我有一个flask api端点,它从客户端接收两个字符串查询参数,并使用python的字符串格式技术->(res_str=f“{queryParamOne}{queryparametro})与“~”分隔符连接。此API还使用atmoz/SFTP docker映像启动SFTP服务器,该映像为用户提供对Kubernetes PVC(持久卷声明)中文件夹的访问;此文件夹名为“res_str”,是两个查询参数串联后获得的结果。此api返回一个带有SFTP creds的json响应。现在,当用户使用获得的

我有一个flask api端点,它从客户端接收两个字符串查询参数,并使用python的字符串格式技术->(res_str=f“{queryParamOne}{queryparametro})与“~”分隔符连接。此API还使用atmoz/SFTP docker映像启动SFTP服务器,该映像为用户提供对Kubernetes PVC(持久卷声明)中文件夹的访问;此文件夹名为“res_str”,是两个查询参数串联后获得的结果。此api返回一个带有SFTP creds的json响应。现在,当用户使用获得的SFTP creds登录到SFTP服务器并将文件上载到“res_str”文件夹时,收到“Permission Denied”错误

技术:我使用pykube k8s客户端与k8s对象交互。我参考了下面的链接,编写了一个sftp配置,用atoms/sftp容器创建一个pod

以下是SFTP pod配置的示例代码:

{
    "apiVersion": "v1",
    "kind": "Pod",
    "metadata": {
        "name": pod_name,
        "labels": {
            "app": pod_name
        }
    },
    "spec": {
        "containers": [
        {
                    "image": "atmoz/sftp",
                    "name": "sftp-server",
                    "env": [{
                        "name": "SFTP_USERS",
                        "value": user_name+":"+password+":1000"
                    }],
                    "ports": [
                        {
                         "containerPort": 22
                        }
                    ], 
                    "volumeMounts": [
                        {
                            "mountPath": "/home/"+user_name+"/"+res_str,
                            "name": "mount-vol",
                            "subPath": res_str
                        }
                    ],
                    "resources": {
                        "limits":
                            {
                                "memory": "2Gi"
                            }
                    }
                }
        ],
        "volumes": [
                {
                    "name": "mount-vol",
                    "persistentVolumeClaim": {
                        "claimName": "drop-pvc"
                    }
                }
            ]
    }
}
现在我尝试了两件事:

  • 我硬编码了mountPath键的值(与res_str相同的字符串),权限被拒绝的问题消失了
  • 当我收到queryParamOne和queryParamTwo作为查询参数接收并连接时,将禁止访问文件夹(名为res_str)
  • 据我所知,在linux中命名目录/文件时,我们应该避免使用特殊字符。但不知道为什么它是硬编码的。有人能帮忙吗