gpt4 book ai didi

amazon-s3 - 在ColdFusion中,是否可以使用计划任务直接将文件上传到amazon s3?

转载 作者:行者123 更新时间:2023-12-03 08:13:30 25 4
gpt4 key购买 nike

我必须制作一个预定的脚本/cfm,从某个文件位置下载图像(没问题),然后将其上传到我们的亚马逊 s3 位置(有问题)。这可能吗?如果可能的话怎么办?下载正常,文件存储在临时文件夹中。我如何/可以将此文件发送到 Amazon s3?

到目前为止我尝试过:

  1. 下载文件时直接存储在 s3 上:
<cfhttp method="get" url="#cimage#" path="https://s3-eu-west-1.amazonaws.com/ourfilelocation/" file="#theimage#" />

给我错误“这是只读资源,无法写入”

  • 首先将其下载到临时文件位置,然后在新的 cfhttp 中上传到 s3:
  • <cfhttp method="get" url="#cimage#" path="#tmpfileloc#" file="#theimage#" />
    <cfhttp method="post" url="https://s3-eu-west-1.amazonaws.com/ourfilelocation/" path="#tmpfileurl#" file="#theimage#" />

    给我错误“405 方法不允许”

    3.

    <cffile action="upload" file="#tmpfileurl#/#theimage#" destination="https://s3-eu-west-1.amazonaws.com/ourfilelocation/">

    这当然给了我“没有使用此表单发送文件”,因为没有表单

    4.

    <cfhttp method="post" url="https://s3-eu-west1.amazonaws.com/ourfilelocation"> 
    <cfhttpparam type="file" name="#theimage#" file="#tmpfileurl#/#theimage#"> </cfhttp>

    给我“连接失败”。状态代码不可用。”我想你不能只发布到该网址,这没有意义。但我不知道是否有办法可以做到。

    最佳答案

    您似乎正在尝试将文件保存到 AWS URL,而不是存储桶。您实际上只想使用这些 URL 来检索文件。而且,您不想使用 CFHTTP。

    CF 能够在其大部分"file"操作功能中与 S3 配合使用。您需要在 AWS IAM 中创建一个有权访问 S3 存储桶的用户,并获取该用户的 AWS AccessKeyID 和 Secret。

    您没有提及您使用的是哪个版本的 CF,但我相信自 2016 年以来就提供了 S3 支持?

    因此,对于 2016 年和 2018 年,您可以使用 FileCopy 功能并简单地使用“S3”作为驱动器号,如下所示:

    <cfset FileCopy(yourSourceFilePAth,"s3://#awsS3accessKeyId#:#awsS3Secret#@Your/Bucket/Path/Here")>

    然后,您必须使用 storeSetACL() 函数设置权限,但这超出了问题的范围。

    此外,还有其他方法来设置变量,CF2021 添加了更多功能,但这超出了您的问题范围。

    关于amazon-s3 - 在ColdFusion中,是否可以使用计划任务直接将文件上传到amazon s3?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70096564/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com