gpt4 book ai didi

ColdFusion ImageWrite 到 Amazon S3

转载 作者:行者123 更新时间:2023-12-03 23:53:44 26 4
gpt4 key购买 nike

这是一个奇怪的页面 - 我在 2 页上有“几乎”相同的代码,它在一个页面上有效,但在另一个页面上无效。极其无用的错误消息“S3 错误消息”。没有说明我哪里出了问题。

下面的代码在两个页面上是相同的 - 两个页面之间唯一(非常细微)的区别是生成 imgLink 的方式 - 在工作页面上它是从单一来源(XML 提要)和 cfset 获得的,在非工作页面 imgLink 最初设置为“无”,然后检查多个来源直到找到一个 - 它仍然以相同的方式进行 cfset,并且我有一个 cfif 以确保它在处理之前有效。但是 - 我也尝试过对源代码进行硬编码(即粘贴通常在 imgLink cfset 中的值),但它仍然失败。

在过去的一天里,我已经用我能想到的所有方法调试了它,但没有成功。所以,我想我正在寻找关于我还应该查看哪些可能导致它失败的指示。

返回的完整错误是 -

An error occurred when performing a file operation create on file s3://mybucket/1577-67BC4EF7-1B21-866F-32E95DF67F3336C6-f.jpg. The cause of this exception was: org.apache.commons.vfs.FileSystemException: Unknown message with code "S3 Error Message."..

我的代码是;

<cfscript> 
this.name ="Object Operations";
this.s3.accessKeyId = "accessKey";
this.s3.awsSecretKey = "secretKey";
this.s3.defaultLocation="EU";
</cfscript>
<!--- CFImage Stuff --->
<!--- S3 Permissions --->
<cfset perms = [{group="all", permission="read"}]>

<!--- Create the Images ---->
<cfset imageuuid = '#CreateUUID()#'>
<cfset imagefull = '#getid.id#-#imageuuid#-f.jpg'>
<cfset imagemain = '#getid.id#-#imageuuid#-m.jpg'>
<cfset imagethumb = '#getid.id#-#imageuuid#-t.jpg'>

<cfimage action="read" name="img1" source="#imgLink#">

<!--- Create the full size image 505 x N --->
<cfif img1.height GT img1.width>
<cfif img1.width GTE 505>
<cfset ImageResize(img1,'505','')>
</cfif>
<cfelseif img1.width GT img1.height>
<cfif img1.width GTE 505>
<cfset ImageResize(img1, '505','')>
</cfif>
</cfif>

<cfset ImageWrite(img1, "s3://mybucket/#imagefull#")>
<cfset StoreSetACL("s3://mybucket/#imagefull#","#perms#")>

<!--- Create the main size image 251 x N --->
<cfif img1.height GT img1.width>
<cfif img1.width GTE 251>
<cfset ImageResize(img1,'251','')>
</cfif>
<cfelseif img1.width GT img1.height>
<cfif img1.width GTE 251>
<cfset ImageResize(img1, '251','')>
</cfif>
</cfif>

<cfset ImageWrite(img1, "s3://mybucket/#imagemain#")>
<cfset StoreSetACL("s3://mybucket/#imagemain#","#perms#")>

<!--- Create the thumbnail 52 x 52 --->
<!--- resize image to 52 pixels tall if width is greater then height --->
<cfif img1.height GT img1.width>
<cfset ImageResize(img1,'52','')>
<cfset fromX = img1.Height / 2 - 26>
<cfset ImageCrop(img1,0,fromX,52,52)>
<!--- resize image to 75 pixels wide if height is greater then width --->
<cfelseif img1.width GT img1.height>
<cfset ImageResize(img1,'','52')>
<cfset fromY = img1.Width / 2 - 26>
<cfset ImageCrop(img1,fromY,0,52,52)>
<cfelse>
<cfset ImageResize(img1,'','52')>
<cfset ImageCrop(img1,0,0,52,52)>
</cfif>

<cfset ImageWrite(img1, "s3://mybucket/#imagethumb#")>
<cfset StoreSetACL("s3://mybucket/#imagethumb#","#perms#")>

最佳答案

刚刚意识到我没有为此添加我的解决方案,所以这里是 - “非工作”代码所在的文件夹有它自己的 Application.cfc,它不包含 S3 元素代码贴在上面。 “工作”代码在相应的 Application.cfc 中确实有。

不太确定为什么它在 Application.cfc 时必须在

关于ColdFusion ImageWrite 到 Amazon S3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9111145/

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