亚马逊s3下载文件签名网址IE 11和Edge不作为附件下载

时间:2017-08-09 01:45:34

标签: amazon-s3

我有以下代码,但没有在浏览器进度条中下载大文件;它只是看起来像是永远加载。适用于所有浏览器,除了任何Microsoft浏览器。这是一个exe文件。

    require 'aws/aws-autoloader.php';

    $s3 = new Aws\S3\S3Client([
        'version' => 'latest',
        'region'  => 'us-east-1'
    ]);

    $cmd = $s3->getCommand('GetObject', [
        'Bucket' => 'download.phppointofsale.com',
        'Key'    => $filename,
            'ResponseContentDisposition' => 'attachment',
            'ResponseContentType' => 'application/octet-stream'
    ]);

    $request = $s3->createPresignedRequest($cmd, '+20 minutes');

    // Get the actual presigned-url
    $presignedUrl = (string) $request->getUri();
    header('Location: '.$presignedUrl);

1 个答案:

答案 0 :(得分:3)

在多年来一直运作良好之后,我突然遇到了同样的问题。

我将其跟踪到Windows Defender SmartScreen,默认情况下在Edge中处于活动状态。一旦我停用它,下载工作正常。

可在此处找到该设置:

  1. 开放边缘设置。
  2. 滚动到底部,然后点击查看高级设置按钮
  3. 再次滚动到底部并停用设置使用Windows Defender SmartScreen帮助保护我免受恶意网站和下载
  4. 似乎这是Edge中的已知问题,并且已得到Microsoft Edge团队的确认:https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/12166637/