GET / PUT специфицирует c версию объекта через aws усиление - PullRequest
0 голосов
/ 21 января 2020

Так что я использую aws-amplify, чтобы получить или добавить к своему aws s3 ведро из приложения реакции. Конфигурация выглядит следующим образом -

Amplify.configure({
  Auth: {
    region: process.env.REACT_APP_AWS_AUTH_REGION,
    userPoolId: process.env.REACT_APP_AWS_COGNITO_USER_POOL_ID,
    userPoolWebClientId: process.env.REACT_APP_AWS_COGNITO_USER_POOL_CLIENT_ID,
    identityPoolId: process.env.REACT_APP_AWS_COGNITO_IDENTITY_POOL_ID,
    mandatorySignIn: true,
  },
  Storage: {
    AWSS3: {
      bucket: process.env.REACT_APP_S3_BUCKET_NAME,
      region: process.env.REACT_APP_AWS_APPSYNC_REGION,
    },
  },
});

Ранее корзина не была versioning-enabled. Теперь я включил управление версиями для корзины s3 с консоли aws.

Так что, когда я добавляю объекты в свою корзину, я вижу, что существуют разные версии некоторых объектов. Но я испытываю трудности с получением указанной c версии объекта из моего приложения через aws-amplify. Из документации из amplify-storage я не вижу, как я могу добавить version-id к моему запросу для получения конкретной c версии объекта.

Из amplify code Я вижу, что он поддерживает только следующие параметры -

'bucket',
'region',
'level',
'track',
'customPrefix',
'serverSideEncryption',
'SSECustomerAlgorithm',
'SSECustomerKey',
'SSECustomerKeyMD5',
'SSEKMSKeyId',

Поэтому мой вопрос - есть ли способ получить указанную c версию объекта из ведро s3 с использованием aws-amplify? Чтобы быть более точным c - При вызове Amplify.Storage.Get или Amplify.Storage.list, как также передать versionId, чтобы получить указанную c версию объекта?

Я пытался pass versionId вот так -

Storage.get(key, {
    versionId: 'version id found from the aws console',
  });

И это -

Storage.get(key, {
    customPrefix: {
       versionId: 'version id found from the aws console',
    }
  });

Но ни один из них не работает. Как я уже говорил выше - в коде amplify не определен параметр для versionId.

Примечание. Я знаю, что это можно сделать, используя REST API, используя AWS-SDK. Но мне нужно сделать это с aws-amplify.

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