1

我有一个用于保存图像的 amazon s3 帐户。我将图像保存为私有,以便只有我的网站可以使用 s3 api 获取它们。但是,我的网站有一项功能可以将更新发布到 facebook。

FB.api('/me/feed', 'post', {
            link: PAGEURL,
            picture: PICTUREURL,
            name: TITLE,
            description: DESCRIPTION
        }, function(response) {
});

为此,我需要PICTUREURL. 所以我的问题是如何使 s3 存储桶仅对 facebook 可用?

4

1 回答 1

1

我怀疑您是否可以仅将其提供给 Facebook。即使你可以,我认为这不会让访问者看到图片。但是,无论如何。

要使图片对 Facebook 可见,请使用即将过期的预签名 URL。不要为 PICTUREURL 参数发送常规的 S3 URL,而是创建一个在几分钟后过期的 URL(足够长让 Facebook 抓取图片)并使用它。我不确定您使用的是什么语言或 S3 库,但它们都支持创建这样的预签名 URL。

坏消息是这可能无济于事。那是因为 Facebook 可能只使用您提供给它的 URL 来显示图片,而不是复制图片并显示其副本。如果是这样,那么最终的最终用户将使用您提供给 Facebook 的 URL,并且在他们看到之前它就会过期。

当然,您可以使用一个在很远的将来过期的 URL,但如果您这样做,您不妨首先公开 S3 对象。

于 2013-06-22T03:29:09.227 回答