我对使用 AWS 比较陌生,并且坚持我认为应该是一项基本任务。我正在使用 PHP SDK 版本 2 将文件从我的存储桶之一检索到我服务器上的临时目录。根据文档,我可以使用getObject来做到这一点。使用以下代码片段,我能够检索文件,但无法将实际内容保存到临时目录。
#1
$result = $s3->getObject(array(
"Bucket" => $s3Bucket,
"Key" => $s3Path,
"ResponseContentType" => "image/jpeg",
"SaveAs" => EntityBody::factory(fopen($saveFile, "wb"))
));
Run Code Online (Sandbox Code Playgroud)
#2
$result = $s3->getObject(array(
"Bucket" => $s3Bucket,
"Key" => $s3Path,
"ResponseContentType" => "image/jpeg",
"SaveAs" => fopen($saveFile, "wb")
));
Run Code Online (Sandbox Code Playgroud)
这两个请求在返回对象的意义上都是成功的,但我仍然得到一个 0 字节的 tmp 文件。对此的任何见解都非常有用。
谢谢!
当使用JavaScript的RegEx来验证带小数位的数字时,我得到的结果不一致.目标是使用任何数字组合,后跟小数点和两位数.它工作正常,除了数千(没有分隔符).
这是我正在使用的表达式:
^[0-9]+(\.[0-9][0-9])$
Run Code Online (Sandbox Code Playgroud)
有效数字:
10.99
0.75
999.99
5000.99
...etc
Run Code Online (Sandbox Code Playgroud)
数字无效:
1000
.75
0
...etc
Run Code Online (Sandbox Code Playgroud)
问题是它匹配成千上万的整数.这是一个内部应用程序,所以我不担心使用额外的分隔符.我用http://regexpal.com/这样的工具测试了表达式,它给了我需要的结果,所以看起来JS中有一些东西导致了这个问题.
你可以在这里复制问题:http: //jsfiddle.net/hcAcQ/
我们最近将我们的服务器从 PHP 5.4.15 升级到 5.5.1,并开始在日志中收到此错误
致命错误无法创建锁定文件:文件描述符错误
我已经将其追踪到这一点,该代码会打开另一个小型 PHP 脚本,该脚本在后台将文件上传到 S3。
// Grab uploaded file and assign a working name
$fileTemp = $_FILES['file']['tmp_name'];
$pathToWorkingFile = tempnam($g_TmpDirectory, "TR-");
// Move the file to our working area
if (move_uploaded_file($fileTemp, $pathToWorkingFile) === false)
throw new Exception("Cannot move file to staging area.", 1011);
// Where the file will end up on S3
$s3Bucket = "test.bucket.com";
$uploadDest = "/uploads/image123.jpg";
// Create process to upload file in background
popen("/usr/local/bin/php /path/to/uploadScript.php $pathToWorkingFile $s3Bucket $uploadDest &", 'r');
Run Code Online (Sandbox Code Playgroud)