Как настроить AWS Amplify's Storage.put для использования ускоренного домена передачи s3? - PullRequest
1 голос
/ 03 апреля 2020

Я включил S3 Transfer Acceleration с использованием Cloudformation .

В документации сказано, что после включения, разработчики должны указать своим клиентам использовать новый ускоренный имя домена.

Например, от mybucket.s3.us-east-1.amazonaws.com до bucketname.s3-accelerate.amazonaws.com.

Однако AWS Метод Storage.put в Amplify использует имя сегмента, определенное во время конфигурации , как итак:

Amplify.configure({
  Storage: {
    AWSS3: {
      bucket: AWS_BUCKET_NAME,
      region: AWS_REGION
    }
  }
})

Поскольку здесь нет имени домена, а есть только имя сегмента, как настроить его для доступа к ускоренной конечной точке?

1 Ответ

1 голос
/ 23 апреля 2020

Мне кажется, что Amplify Storage не поддерживает эту конфигурацию из коробки, поэтому, если вы хотите использовать Transfer Acceleration, вам нужно будет использовать стандартный клиент S3 для javascript, например:

// obtain credentials from cognito to make uploads to s3...
let albumBucketName = "BUCKET_NAME";
let bucketRegion = "REGION";
let IdentityPoolId = "IDENTITY_POOL_ID";

AWS.config.update({
region: bucketRegion,
credentials: new AWS.CognitoIdentityCredentials({
    IdentityPoolId: IdentityPoolId
})
});

// configure the S3 client to use accelerate - note useAccelerateEndpoint flag
const options = {
    signatureVersion: 'v4',
    region: bucketRegion, // same as your bucket
    endpoint: new AWS.Endpoint('your-bucket-name.s3-accelerate.amazonaws.com'),    
    useAccelerateEndpoint: true,  
};
const s3 = new AWS.S3(options);

// then use the client...
// ...

Ссылка для класса AWS .S3: https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/S3.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...