我是一名新手,需要使用S3进行图像存储。我找到了半打s2wrapper for cf的版本,但似乎唯一一个针对v4设置的版本是由Leigh修改的。
您可以在以下链接中找到该版本:https://gist.github.com/Leigh-/26993ed79c956c9309a9dfe40f1fce29 将其放置在com目录中,并创建一个包含以下代码的“test”页面:
但是收到了以下错误消息:
所以我把第37行从:
我觉得直接修改Leigh的代码是不好的,因为我已经潜伏在这里一年,并且知道Leigh的代码很可靠。
请问是否有任何使用此代码的示例?如果没有,请告诉我我做错了什么。如果有区别,我正在使用Lucee 5而不是Adobe的CF引擎。
更新: 我按照Leigh的指示操作,错误现已消失。 我向我的测试页面添加了一些代码,现在如下:
无论我在bucket、obj或region中输入什么,我都会得到以下错误信息:
JIC,我已经去AWS获取了新的密钥:
Leigh如果你还在这里,或者任何使用过s3Wrappers的人有什么建议或指导?
更新#2: 即使Alex提供帮助后,我仍然无法使其正常工作。从getObjectLink收到的链接无效,而getObject从未下载过对象。我想尝试putObject方法。
为了查看是否有其他信息,我收到了这个:
我找到了这篇文章https://shlomoswidler.com/2009/08/amazon-s3-gotcha-using-virtual-host.html,但它已经很老了,因为S3特别建议在桶名称中使用点,所以我认为它不再相关。显然我做错了什么,但我已经花了数小时来解决这个问题,但似乎找不出问题出在哪里。
您可以在以下链接中找到该版本:https://gist.github.com/Leigh-/26993ed79c956c9309a9dfe40f1fce29 将其放置在com目录中,并创建一个包含以下代码的“test”页面:
s3 = createObject('component','com.S3Wrapper').init(application.s3.AccessKeyId,application.s3.SecretAccessKey);
但是收到了以下错误消息:
![enter image description here](https://istack.dev59.com/so1yK.webp)
variables.Sv4Util = createObject('component', 'Sv4').init(arguments.S3AccessKey, arguments.S3SecretAccessKey);
variables.Sv4Util = createObject('component', 'Sv4Util').init(arguments.S3AccessKey, arguments.S3SecretAccessKey);
![enter image description here](https://istack.dev59.com/8MlOv.webp)
请问是否有任何使用此代码的示例?如果没有,请告诉我我做错了什么。如果有区别,我正在使用Lucee 5而不是Adobe的CF引擎。
更新: 我按照Leigh的指示操作,错误现已消失。 我向我的测试页面添加了一些代码,现在如下:
<cfscript>
s3 = createObject('component','com.S3v4').init(application.s3.AccessKeyId,application.s3.SecretAccessKey);
bucket = "imgbkt.domain.com";
obj = "fake.ping";
region = "s3-us-west-1"
test = s3.getObject(bucket,obj,region);
writeDump(test);
test2 = s3.getObjectLink(bucket,obj,region);
writeDump(test2);
writeDump(s3);
</cfscript>
无论我在bucket、obj或region中输入什么,我都会得到以下错误信息:
![enter image description here](https://istack.dev59.com/rHNTj.webp)
![enter image description here](https://istack.dev59.com/U7zRz.webp)
更新#2: 即使Alex提供帮助后,我仍然无法使其正常工作。从getObjectLink收到的链接无效,而getObject从未下载过对象。我想尝试putObject方法。
test3 = s3.putObject(bucketName=bucket,regionName=region,keyName="favicon.ico");
writeDump(test3);
为了查看是否有其他信息,我收到了这个:
![enter image description here](https://istack.dev59.com/gFspy.webp)
S3v4.cfc
,B)签名4实用程序保存为Sv4.cfc
(都在您的“com”目录中)。然后在第38行将“com”添加到CFC路径中:variables.Sv4Util = createObject('component', 'com.Sv4').init(...);
- Leigh