Make video upload to S3 compatible with SigV4 authentication

Description

The studio has a feature that allows course teams to upload videos
directly to S3. This is a very convenient feature, but it works only for
some S3 regions. The reason is that some regions require SigV4
authentication. It is possible to enable SigV4 authentication in boto by
setting the S3_USE_SIGV4 environment variable. However, this requires
the "host" setting to be passed to the boto.connection.Connection
constructor.

Actually, there are many other settings that should be passed to the
boto constructor, and this is precisely what the
storages.backends.s3.S3BotoStorage constructor does. So we replace the
call to boto by a call to the storages app.

All other calls to boto are made via the storages app in edx-platform.
As far as we know, the only exception left is in ORA2.

edX.org has not faced this problem because they (probably) use a
different authentication capability.

This change is important because it allows video uploads to, for
instance, the us-east-2 region. The S3 emulator called MinIO (minio.io)
also requires SigV4. This emulator is useful for bringing object storage
capabilities to Open edX administrators which may not have access to
AWS.

  1.  

    1.  

      1. Please consider the following when opening a pull request:

  • Link to the relevant JIRA ticket(s) and tag any relevant team(s).

  • Squash your changes down into one or more discrete commits.
    In each commit, include description that could help a developer
    several months from now.

  • If running `make upgrade`, run as close to the time of merging as possible
    to avoid accidentally downgrading someone else's package.
    Put the output of `make upgrade` in its own separate commit,
    decoupled from other code changes.

  • Aim for comprehensive test coverage, but remember that
    automated testing isn't a substitute for manual verification.

  • Carefully consider naming, code organization, dependencies when adding new code.
    Code that is amenable to refactoring and improvement benefits all platform developers,
    especially given the size and scope of edx-platform.
    Consult existing Architectural Decision Records (ADRs),
    including those concerning the app(s) you are changing and
    [those concerning edx-platform as a whole](https://github.com/edx/edx-platform/tree/master/docs/decisions).

Assignee

David St. Germain

Reporter

Open Source Pull Request Bot

Labels

Contributor Name

Régis Behmo

Repo

edx/edx-platform

Customer

None

Epic Link

None

OSCM Assignee

None

Platform Map Area (Levels 1 & 2)

None

Platform Map Area (Levels 3 & 4)

None

Priority

Unset
Configure