当前位置: 首页 > 知识库问答 >
问题:

如何在web上的python flask中读取AWS s3中的文件

郁明诚
2023-03-14

我想导入s3文件,并立即在网上显示文件('parameter.txt')的内容。我不确定我把代码的哪一部分放在文件名中。

出现这种错误。请给我一些建议。非常感谢。

@app.route('/information', methods=['POST'])
def information():
    key = request.form['key']
    my_bucket = get_bucket()
    file_obj = my_bucket.Object(key).get()

    return Response(
        file_obj['Body'].read(),
        mimetype='text/plain',
        headers={"Content-Disposition": "attachment:filename= 
        {}".format(key)}
      )

错误:。。。回归自我_make_api_call(operation_name,kwargs)File“/home/ubuntu/.local/lib/python3.6/site packages/botocore/client.py”,lin e 634,在make_api_call api_params中,operation_model,context=request_context)File“/home/ubuntu/.local/lib/python3.6/site packages/botocore/client.py”,lin e 682,在,操作模型文件“/home/ubuntu/.local/lib/python3.6/site packages/botocore/validate.py”,第297行,在serialize_to_请求中引发参数validationError(report=report.generate_report())

博托科尔。例外。ParamValidationError:参数验证失败:参数键的长度无效,值为0,有效范围为1-inf

共有1个答案

钱志义
2023-03-14
import boto
from boto.s3.key import Key

keyId = "your key"
sKeyId="your_aws_secret_key_id"

srcFileName="package.json"
destFileName="package1.json"
bucketName="bucketname"
conn = boto.connect_s3(keyId,sKeyId)
bucket = conn.get_bucket(bucketName)

#Get the Key object of the given key, in the bucket

k = Key(bucket,srcFileName)

#Get the contents of the key into a file 

k.get_contents_to_filename(destFileName)
 类似资料:
  • 我需要创建将在两种语言之间翻译一些单词的WEB服务,所以我创建了一个接口:

  • 问题内容: 是否可以在AngularJS中读取文件?我想将文件放入HTML5画布进行裁剪。 我在考虑使用指令吗?这是我要放入指令中的javascript代码: 问题答案: 是的,指令是正确的方法,但看起来有些不同: 工作示例:http : //plnkr.co/edit/y5n16v?p=preview 感谢lalalalalmbda提供此链接。

  • 问题内容: 我希望用户上传一个.csv文件,然后让浏览器能够解析该文件中的数据。我正在使用ReactJS。这将如何运作?谢谢。 问题答案: 弄清楚了。的组合反应文件阅读器和HTML5的的FileReader(见本页)。 将react-file-reader位放在render内部: 然后在上面。

  • 问题内容: 我试图将文本文件加载到我的JavaScript文件中,然后从该文件中读取行以获取信息,我尝试使用FileReader,但它似乎无法正常工作。有人可以帮忙吗? 问题答案: 是的,可以使用FileReader,我已经做了一个示例,这是代码: 最后,我只是读了其他一些吸引我的答案,但正如他们所建议的那样,您可能正在寻找使您能够从JavaScript文件所在的服务器(或设备)加载文本文件的代码

  • 我想从文本文件中读取文本。在下面的代码中,会发生异常(这意味着它会转到catch块)。我将文本文件放在应用程序文件夹中。我应该把这个文本文件(mani.txt)放在哪里才能正确阅读?

  • 问题内容: 我正在寻找解决上述问题的解决方案。 这是我的“无效代码”。charsInCurrentBuffer始终返回-1! 问题答案: 当你从FD中,“用户的定位缓冲区和文件偏移都必须是文件系统的逻辑块大小的倍数”(引自手册页在Linux上)。其他环境对此可能有不同的约束,并且实际上是依赖于文件系统的。 通常情况并非如此(除非您很幸运)。 如果平台具有该功能,则应考虑使用该功能,或者只是分配一个