Это странно - у меня «практически» идентичный код на 2 страницах, он работает на одной, но не на другой. Невероятно бесполезное сообщение об ошибке «Сообщение об ошибке S3». не проливает свет на то, где я ошибаюсь.
Приведенный ниже код идентичен на обеих страницах - единственное (очень небольшое) различие между двумя страницами заключается в способе генерации imgLink - на рабочей странице он получен из одного источника (канал XML) и cfset, на Нерабочая страница imgLink изначально устанавливается как 'none', а затем проверяется несколько источников, пока он не находит один - это все еще cfset таким же образом, и у меня есть cfif, чтобы убедиться, что он действителен перед обработкой. ОДНАКО - Я также попытался жестко кодировать источник (то есть вставить значение, которое обычно находится в наборе imgLink cfset), и он все еще не работает.
Я отлаживал это всеми возможными способами, которые я могу думать в последний день, но безуспешно. Итак, я думаю, что я ищу указатели на то, что еще я должен посмотреть, что может привести к его отказу.
Возвращена полная ошибка -
Произошла ошибка при выполнении операции создания файла для файла s3: //mybucket/1577-67BC4EF7-1B21-866F-32E95DF67F3336C6-f.jpg.
Причина этого исключения: org.apache.commons.vfs.FileSystemException: неизвестное сообщение с кодом «Сообщение об ошибке S3». ..
И мой код:
<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#")>