Fine Uploader to S3 bucket, получая 405 Ошибка метода не разрешена
Я бился головой об стену от этого и совершенно тупой. Я пытаюсь использовать FineUploader для загрузки файлов непосредственно в корзину Amazon S3. По сути, я скопировал код с веб-страницы fineuploader.com (выгрузка файлов напрямую в Amazon S3) и серверный PHP.
Когда я пытаюсь загрузить файл, я вижу, что сообщение в конечную точку подписи, кажется, работает успешно, но когда оно пытается загрузить в S3, я получаю 405 "Метод не разрешен" ошибка.
HTML
$(document).ready(function () {
$("#fine-uploader").fineUploaderS3({
debug: true,
request: {
endpoint: 'upload.roughdrag.com',
accessKey: 'AKIAJL37USSCV......'
},
signature: {
endpoint: 'handlers/uploadHandler.php'
},
uploadSuccess: {
endpoint: 'index.php'
},
iframeSupport: {
localBlankPagePath: 'blank.html'
},
retry: {
enableAuto: true // defaults to false
},
paste: {
targetElement: $(document),
promptForName: true
},
deleteFile: {
enabled: true,
endpoint: 'handlers/uploadHandler.php'
}
});
});
Конечная точка подписи PHP - uploadHandler.php
$expectedMaxSize) {
// You can safely uncomment this next line if you are not depending on CORS
//header("HTTP/1.0 500 Internal Server Error");
deleteObject();
echo json_encode(array("error" => "Your file is too big!"));
} else {
echo json_encode(array("tempLink" => getTempLink($bucket, $key)));
}
}
// Provide a time-bombed public link to the file.
function getTempLink($bucket, $key)
{
$client = getS3Client();
$url = "{$bucket}/{$key}";
$request = $client->get($url);
return $client->createPresignedUrl($request, '+15 minutes');
}
function getObjectSize($bucket, $key)
{
$objInfo = getS3Client()->headObject(array(
'Bucket' => $bucket,
'Key' => $key
));
return $objInfo['ContentLength'];
}
?>
Конфигурация Amazon S3 CORS
*
POST
PUT
DELETE
3000
ETag
*
Политика безопасности IAM Group
{
"Version":"2012-10-17",
"Statement":[{
"Effect":"Allow",
"Action":"s3:PutObject",
"Resource":"arn:aws:s3:::upload.roughdrag.com/*"
}]
}
uploader.js был захвачен изhttp://fineuploader.com/source/all.fineuploader-3.9.1.min.js
Ответ консоли
[FineUploader 3.9.0-3] Grabbed 1 dropped files.
[FineUploader 3.9.0-3] Received 1 files or inputs.
[FineUploader 3.9.0-3] Submitting S3 signature request for 0
[FineUploader 3.9.0-3] Sending POST request for 0
POST http://www.roughdrag.com/handlers/uploadHandler.php 200 OK 195ms
[FineUploader 3.9.0-3] Sending upload request for 0
POST http://upload.roughdrag.com/ 405 Method Not Allowed 559ms
"NetworkError: 405 Method Not Allowed - http://upload.roughdrag.com/"
[FineUploader 3.9.0-3] Received response status 405 with body:
405 Method Not Allowed
405 Method Not Allowed
Code: MethodNotAllowed
Message: The specified method is not allowed against this resource.
ResourceType: OBJECT
Method: POST
RequestId: 3493FE605B461EAF
HostId: HDXmtSpHufy6LDIH1Nsp0oYkLDvTC3XKFRRIadw66gmaMsF53Z3WYsCWooOoRcw2
[FineUploader 3.9.0-3] Waiting 5 seconds before retrying breakout.jpg...
[FineUploader 3.9.0-3] Detected valid cancel, retry, or delete click event on file 'breakout.jpg', ID: 0.
[FineUploader 3.9.0-3] Cancelling 0
Программное обеспечение выглядит потрясающе, но я просто могуне пройти это. Любая помощь приветствуется. Я