小编Ale*_*huk的帖子

Rails回形针错误`AWS :: S3 :: Errors :: BadRequest`对`exists?`和`clear`

所有.

我的一切工作正常:图像正在上传,可以通过Web使用paperclip和S3访问,除非我登录rails c并键入以下内容:

> User.first.avatar.exists?
[AWS S3 400 0.093287 0 retries] head_object(:bucket_name=>"mozg-staging-static",:key=>"users/avatars/000/000/001/original/289736.jpg") AWS::S3::Errors::BadRequest AWS::S3::Errors::BadRequest

=> false
Run Code Online (Sandbox Code Playgroud)

clear方法也是如此.找不到解决方案了.

我有这个许可政策:

    {
            "Sid": "Stmt1436958517000",
            "Effect": "Allow",
            "Action": [
                "s3:AbortMultipartUpload",
                "s3:DeleteObject",
                "s3:DeleteObjectVersion",
                "s3:GetBucketAcl",
                "s3:GetBucketCORS",
                "s3:GetObject",
                "s3:GetObjectAcl",
                "s3:GetObjectVersion",
                "s3:GetObjectVersionAcl",
                "s3:ListBucket",
                "s3:ListBucketMultipartUploads",
                "s3:ListBucketVersions",
                "s3:ListMultipartUploadParts",
                "s3:ListObjects",
                "s3:PutObject",
                "s3:PutObjectAcl",
                "s3:PutObjectVersionAcl",
                "s3:RestoreObject"
            ],
            "Resource": [
                "arn:aws:s3:::mozg-staging-static",
                "arn:aws:s3:::mozg-staging-static/*"
            ]
        }
Run Code Online (Sandbox Code Playgroud)

谢谢你的支持.

ruby-on-rails amazon-s3 paperclip amazon-web-services

8
推荐指数
1
解决办法
459
查看次数

调试DOM Promises中的异常

不久前,Chrome DevTools开始支持异步堆栈跟踪(http://www.html5rocks.com/en/tutorials/developertools/async-call-stack/),所以现在我们可以避免调试异步代码的痛苦.

但DOM Promises(http://www.html5rocks.com/en/tutorials/es6/promises/)也被发布,成功地带来了痛苦.

如果在承诺的代码中某处抛出任何异常,它将被promises系统吞噬,并且即使"Pause on exceptions"打开也不会让调试器停止.

好吧,我们可以打开"暂停捕获的异常",但这会导致暂停每个承诺拒绝通常是多余的.我只想捕捉各种真实的JavaScript或库错误,表明我的代码编写错误.可能会拒绝承诺而没有逻辑错误:

function showLargeImage (user) {
    return Promise(function (resolve, reject) {
        if (!user.image.large) {
            // Expected behavior. No exception pause needed.
            reject('No larger image.');
        } else {
            // What if element doesn't exist? We want to catch exception here.
            $('#user-' + user.id + '-large-image')[0].style.display = 'block';
            resolve();
        }
    });
}
Run Code Online (Sandbox Code Playgroud)

有没有人遇到同样的问题?如何调试该代码?

更新:代码示例错误.仅在"then"处理程序(不在promise体中)中吞下异常.应该是这样的:

function showLargeImage (user) {
    return loadLargeImage(user).then(function (largeImage) {
        if (!largeImage) {
            // Expected behavior. No exception pause …
Run Code Online (Sandbox Code Playgroud)

javascript error-handling asynchronous exception-handling promise

3
推荐指数
1
解决办法
619
查看次数