Не правильно возвращает объект в AWS, как исправить?

Ссылка скопирована
1 ответ

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

import { getSignedUrl } from "@aws-sdk/s3-request-presigner";   const signedUrl = await getSignedUrl(this._s3Client, new GetObjectCommand({         Bucket: this._s3Config?.bucket,         Key: path,         ResponseContentDisposition: 'inline',         ResponseContentType: 'image/png'      }));

import { getSignedUrl } from "@aws-sdk/s3-request-presigner"; const signedUrl = await getSignedUrl(this._s3Client, new GetObjectCommand({ Bucket: this._s3Config?.bucket, Key: path, ResponseContentDisposition: 'inline', ResponseContentType: 'image/png' }));

Мне возвращает

{"id":1,"jsonrpc":"2.0","result":"https://asd.s3.tebi.io/base64/test2.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=asd%asd%2Feu-north-1%2Fs3%2Faws4_request&X-Amz-Date=20240211T175200Z&X-Amz-Expires=900&X-Amz-Signature=asd&X-Amz-SignedHeaders=host&response-content-disposition=inline&x-id=GetObject"}%

{"id":1,"jsonrpc":"2.0","result":"https://asd.s3.tebi.io/base64/test2.png?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Credential=asd%asd%2Feu-north-1%2Fs3%2Faws4_request&X-Amz-Date=20240211T175200Z&X-Amz-Expires=900&X-Amz-Signature=asd&X-Amz-SignedHeaders=host&response-content-disposition=inline&x-id=GetObject"}%

Дополнительно:

Нужно решить такую задачу?

Опишите проблему, и специалист поможет с настройкой, исправлением ошибки или доработкой сайта. Подберём понятный план работ без лишней переписки.

Заказать помощь
Лучший ответ
1
Андрей PHP Ответ

Для начала, необходимо убедиться, что ваш код правильно сконфигурирован для работы с сервисом AWS. Возможно, у вас ошибка в параметрах подключения или в самом коде.

Один из распространенных способов работы с AWS в PHP - использование библиотеки AWS SDK for PHP. Убедитесь, что вы правильно установили эту библиотеку через Composer. Если нет, выполните следующую команду в терминале:

composer require aws/aws-sdk-php

composer require aws/aws-sdk-php

Далее, у вас должен быть правильно сконфигурирован файл credentials в директории ~/.aws/ вашей домашней директории. В этом файле должны быть указаны ваши учетные данные AWS:

[default]
aws_access_key_id = ваш_access_key
aws_secret_access_key = ваш_secret_key

[default] aws_access_key_id = ваш_access_key aws_secret_access_key = ваш_secret_key

Теперь, когда у вас все настроено, вы можете создать объект для работы с AWS. Вот пример кода:

require 'vendor/autoload.php';
 
use Aws\S3\S3Client;
 
$client = new S3Client([
    'version' => 'latest',
    'region' => 'us-west-2',
]);
 
// Пример использования объекта $client

require 'vendor/autoload.php'; use Aws\S3\S3Client; $client = new S3Client([ 'version' => 'latest', 'region' => 'us-west-2', ]); // Пример использования объекта $client

Убедитесь, что вы правильно указали версию и регион для вашего сервиса AWS. Теперь вы можете использовать объект $client для работы с сервисами AWS, такими как S3, EC2 и др.

Если у вас все еще возникают проблемы с возвращением объектов в AWS, убедитесь, что ваш код правильно обрабатывает ошибки и выводит сообщения об ошибках для отладки. Также проверьте логи вашего приложения для выявления возможных проблем.

Надеюсь, эта информация поможет вам исправить проблему с возвращением объектов в AWS. Если у вас остались дополнительные вопросы, не стесняйтесь задавать.

Другие ответы (0)

Пока нет других ответов. Будьте первым, кто поможет автору.

Ответить на вопрос

комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Вам также может быть интересно