检查Amazon S3上是否存在文件

时间:2018-02-22 03:22:32

标签: javascript image amazon-web-services amazon-s3

所以,我想要做的是用Javascript查看我的Amazon S3上是否存在图片。

我可以通过预加载图片的典型方式执行此操作,并使用 onload onerror 事件来检查图像是否存在。

var img = new Image;
img.src = imageUrl;
img.onerror = function()....
img.onload = function()...

我现在想要实现的目标是相同的,但没有完全下载图像。 假设我有一个可能的3mb图像。如果我现在检查我的方式,如果图像不存在,它将进入 onerror 事件,我将调用我的服务器来生成图像,然后我会再次检查。当图像存在时,它将下载3mb图像,它将进入 onload 事件。

如果图片不存在,亚马逊会返回 403 Forbidden 状态代码。如果确实存在,则返回 200 Ok

我的问题是:

在没有完全下载图片的情况下,有没有办法检查状态代码或其他任何方式?

谢谢!

1 个答案:

答案 0 :(得分:2)

尝试执行HEAD请求,如此回答所示

https://stackoverflow.com/a/333657/209067

上面链接的答案的代码副本:

function UrlExists(url, callback)
{
    var http = new XMLHttpRequest();
    http.open('HEAD', url);
    http.onreadystatechange = function() {
        if (this.readyState == this.DONE) {
            callback(this.status != 404);
        }
    };
    http.send();
}

如果是您的情况,则需要检查403而不是404