php에서는 파일 저장없이 s3에 업로드 안되나요?? 채택완료

일반 string 문자열을 로컬에 저장하지 않고
바로 텍스트 파일로 s3에 업로드하려는데
따로 가이드가 없어서 문의드립니다.

답변 6개

채택된 답변
+20 포인트

php aws s3 api 를 직접 쓰면 됩니다.
파일로 만들 필요가 없습니다.

$s3->putObject([
'Bucket' => $bucket,
'Key' => $objkey,
'Body' => gzencode($text, 9),
'ACL' => 'public-read',
'ContentType' => 'text/plain',
'ContentEncoding' => 'gzip'
]);

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

s3 접근권한도 필요하니 이것도 참고해보세요!

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

s3 접근권한도 필요하니 이것도 참고해보세요!

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

어뷰징 게시글 

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

GPT에 문의해서 답변 얻은 부분이니 참고해 보세요


Copy
require 'vendor/autoload.php';

use Aws\S3\S3Client;

// AWS S3 클라이언트 초기화
$s3 = new S3Client([
    'region'  => 'ap-northeast-2',  // 예: 서울 리전
    'version' => 'latest',
    'credentials' => [
        'key'    => 'YOUR_AWS_KEY',
        'secret' => 'YOUR_AWS_SECRET',
    ],
]);

// 업로드할 문자열
$content = "이것은 메모리에서 바로 업로드되는 문자열입니다.";

// php://temp에 파일 핸들 생성
$stream = fopen('php://temp', 'r+');
fwrite($stream, $content);
rewind($stream); // 파일 포인터를 처음으로 되돌림

// S3에 업로드
$result = $s3->upload('your-bucket-name', 'path/to/file.txt', $stream, 'public-read');

// 스트림 닫기
fclose($stream);

// 결과 확인
echo "File uploaded to: " . $result['ObjectURL'];
로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인
🐛 버그신고