Skip to content
This repository was archived by the owner on Nov 20, 2018. It is now read-only.
This repository was archived by the owner on Nov 20, 2018. It is now read-only.

Multi-part upload to S3 fails on Edge >= 15 with 403 Forbidden #1852

@dpetker

Description

@dpetker

Type of issue

  • Bug report
  • Feature request
  • Support request

Uploader type

  • Traditional
  • S3
  • Azure
Bug Report

In Edge 15 (and presumably future versions), a content-type header is now being added to PUT requests. This becomes an issue when using an S3 uploader as Fine Uploader doesn't include content-type when creating its string to sign - so signature validation will always fail.

Fine Uploader version

5.14.4

Browsers where the bug is reproducible

Edge 15

Operating systems where the bug is reproducible

Windows 10

Exact steps required to reproduce the issue

  1. Create an S3 uploader with the default chunk size (5MB), chunking.enabled = true, and signature.endpoint set
  2. Select a file > 5MB to upload
  3. Open F12 Developer Tools to see the PUTs to S3 fail with "403 Forbidden"

An error snippet is as follows:

<?xml version="1.0" encoding="UTF-8"?>
<Error>
<Code>SignatureDoesNotMatch</Code>
<Message>The request signature we calculated does not match
 the signature you provided. Check your key and signing method.</Message>
<StringToSign>PUT
video/3gpp
x-amz-date:Wed, 31 May 2017 13:12:57 GMT
/path/to/my/resource
</StringToSign>
</Error>

Note that S3 is including content-type in its constructed StringToSign. No such content-type is included in the { headers: '<string to sign>' } sent to the signature.endpoint on our server.

All relevant Fine Uploader-related code that you have written

$('#foo').fineUploaderS3({
  request: {
    endpoint: 'some-url',
    accessKey: 'secret'
  },
  signature: {
    endpoint: 'our/signing/url'
  },
  chunking: {
    enabled: true
  },
  resume: {
    enabled: true
  },
  retry: {
    enableAuto: true,
    maxAutoAttempts: 10
  },
});

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions