Как настроить перенаправление на ведро s3 только для одного файла? - PullRequest
0 голосов
/ 21 декабря 2018

Я настроил корзину s3 для размещения своего веб-сайта и настроил облачный фронт, чтобы он указывал на мою корзину s3.Все запросы, отправленные на облачный фронт, будут отправлены в мое ведро s3.То, что я хочу сделать, это настроить правило перенаправления, применимое только к одному из файлов в моей корзине s3.В s3 есть файл javascript /folderA/index.js.И я хочу применить правило для перенаправления запроса на этот файл в другой файл /folderB/index.js.Как я могу настроить это?Нужно ли устанавливать на s3 bucket или cloudfront?

1 Ответ

0 голосов
/ 23 декабря 2018

Не думаю, что вы можете определить правило перенаправления S3 для файла.Я полагаю, что это на уровне корзины.

Вы можете скопировать /folderB/index.js содержимое в /folderA/index.js, поэтому перенаправление не требуется.

В качестве альтернативы, вы можете настроить функцию просмотра lambda @ edgeбудет перенаправлять в случае, если путь равен /folderA/index.js

что-то вроде:

'use strict';

exports.handler = (event, context, callback) => {
    /*
     * Generate HTTP redirect response with 301 status code and Location header.
     */
    const request = event.Records[0].cf.request;
    const uri = request.uri;
    if (ur.endsWith('/folderA/index.js`) {
      const redirectTo = //where you want to redirect
      console.log(`Redirecting ${uri} with to: ${redirectTo}`);
      const response = {
          status: '301',
          statusDescription: 'Found',
          headers: {
              location: [{
                  key: 'Location',
                  value: redirectTo,
              }],
          },
      };
      callback(null, response);
    } else {
       callback(null, request);
    }

};
...