【问题标题】:I cannot find a solution for botocore.exceptions.ParamValidationError:我找不到 botocore.exceptions.ParamValidationError 的解决方案:
【发布时间】:2019-10-24 19:14:59
【问题描述】:

我一直在尝试解决以下错误 botocore.exceptions.ParamValidationError: invalid length for parameter Key, value: 0, valid range: 1-inf 我能够列出文件,将文件上传到列出我的 S3 存储桶/对象的静态 html 页面。但是如果不点击 ParamValidationError 就无法下载或删除。

我在 EC2、Python2.7 Flask、flask-bootstrap 上使用文本编辑器 (nano)。

我想我在括号中遗漏了一个值,但到目前为止我还没有找到解决方案。任何帮助将不胜感激。

 @app.route('/download', methods=['POST'])
    def download():
    key = request.form['key']

    my_bucket = get_bucket()
    file_obj = my_bucket.Object(key).get() 

  File "/home/ec2-user/flask-s3-bucket/app.py", line 41, in download
    file_obj = my_bucket.Object(key).get()

ParamValidationError: Parameter validation failed:
Invalid length for parameter Key, value: 0, valid range: 1-inf

【问题讨论】:

  • 哪些对象/类型被用作关键变量?看起来您的密钥需要 > 0。
  • 看起来你的密钥是一个空字符串
  • 感谢您的 cmets 我解决了这个问题 - 我现在知道如何解决它。
  • @mango1 如果您可以添加您的解决方案作为答案,那就太好了。这样其他有相同问题的用户就可以找到解决方案。

标签: python amazon-s3 boto3


【解决方案1】:

my_bucket.Object(key).get()

当调用 Object 方法时,它至少需要一个值。 在此处检查 Key 的值。这必须生成为 Null。尝试用硬编码值替换。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-05
    • 2017-08-14
    • 1970-01-01
    • 1970-01-01
    • 2020-08-12
    • 1970-01-01
    • 2021-07-23
    • 2023-01-30
    相关资源
    最近更新 更多