【发布时间】:2018-06-12 17:50:35
【问题描述】:
我在 S3 有一个存储桶,我上传了图片。 现在我正在使用 AWS - SDK 获取图像。现在我想通过代理绕过图像
$client = new Aws\S3\S3Client([
'version' => 'latest',
'region' => 'us-east-1',
'debug' => TRUE, // enable debug info
'stats' => TRUE, // enable stats
'@http' => [
'proxy' => 'http://192.168.16.1:10'
],
'credentials' => [
'key' => base64_decode(KEY),
'secret' => base64_decode(SECRET)
]
]);
这是我的存储桶设置,当我执行 wireshark 时,它仍然在请求中显示 AWS ip 地址。
谁能告诉我如何使用代理绕过 S3 图像。
【问题讨论】:
-
"我不想让 CSS 和图像公开访问。" 那么浏览器如何使用它们呢?每个网站 css\images\js 都必须可由用户浏览器访问,网站才能正常工作
-
如果他们想通过 s3 url 直接访问,我不想让他们访问该图像。私人图像怎么样
-
“私人”内容可以通过两种方式直接从 S3 访问;通过 1) 具有属于存储桶所有者的客户端秘密凭据的服务器进程,或 2) 直接由浏览器获取访问请求,该访问请求由您的服务器使用客户端密钥凭据进行加密签名。后者使用 javascript 请求(通常是异步 XMLHTTPRequest)执行,首先到您的服务器进行签名,然后到 S3 获取内容。
-
@HituBansal 可以,但不要将此配置与实际保护此内容混淆。所有这一切都使盗链变得更加困难。任何技能水平不高的人都可以轻松绕过这一点并下载您的对象……这只会使其他网站难以通过在未经您许可的情况下链接到您的内容来窃取您的带宽。这里的问题似乎是请求不符合您的期望。检查请求标头、浏览器中的错误控制台和 S3 访问日志,并报告您发现的内容。
-
@shukshin.ivan 好吧,因为您显然不了解 AWS API 中的 S3 类是如何工作的。也不是基本的下载和保留代理如何工作......
标签: php amazon-s3 aws-sdk aws-php-sdk