튜토리얼
Claude Opus 5.5로 저장 대신 페이지가 열리는 상품 링크 수정하기
상품 PDF나 광고 이미지가 다운로드되지 않고 열리면 Claude Opus 5.5에 최종 출처와 응답 헤더를 추적하도록 요청하세요.

Panelly로 직접 만들어 보세요
아이디어를 내 상품 광고로
상품 사진과 아이디어로 시작하세요. Panelly에서 네 컷 광고, 통일된 소재 세트, 영상을 만들 수 있어요.
Panelly에서 만들기 요청을 먼저 수정하고 생성하세요.
상품 PDF나 광고 이미지가 다운로드되지 않고 열리면 Claude Opus 5.5에 최종 출처와 응답 헤더를 추적하도록 요청하세요. 링크에 download를 붙여도 임의의 외부 서버를 제어할 수 없습니다. 일반 이동, 서버가 지정한 첨부 전달, 허용된 fetch-to-Blob 흐름을 구분한 뒤 수정하세요.
전달 방식 선택하기
| 상황 | 확인할 것 | 후보 방식 |
|---|---|---|
| 파일과 페이지가 같은 출처 | 링크와 응답 처리 방식 | 일반 다운로드 링크를 대상 브라우저에서 검증 |
| 제어 가능한 소재 호스트에 파일 존재 | 최종 응답 헤더 | 적절한 이름을 가진 첨부 응답 |
| JavaScript가 외부 파일을 읽어야 함 | CORS 허용, 크기, 권한 | 허용되고 필요한 경우에만 Blob으로 가져오기 |
MDN 링크 요소 문서는 download를 같은 출처 URL과 blob:, data:에 한정합니다. Content-Disposition 문서는 첨부 처리를 설명합니다. 응답 읽기를 허용하는 CORS와 서버의 다운로드 지정은 다른 문제입니다. 느슨한 CORS 헤더 추가가 외부 링크의 일반적인 해결책은 아닙니다.
익숙한 도메인 대신 출처 비교하기
가상 사이트 https://shop.example에서 /files/spec.pdf는 같은 출처입니다. https://assets.shop.example/spec.pdf는 상위 도메인을 공유해도 다릅니다. https://shop.example:8443/spec.pdf도 포트 때문에 다르고, https://shop.example:443/spec.pdf는 같은 HTTPS 출처로 정규화됩니다. 네 URL 비교는 로컬에서 계산했으며 원격 다운로드는 실행하지 않았습니다.
전체 리디렉션 경로를 기록하세요. 같은 출처처럼 보이는 링크가 다른 호스트로 끝날 수 있고 만료된 서명 링크가 오류 문서를 반환할 수 있습니다. 200 응답도 PDF 대신 HTML일 수 있습니다. 공유 보고서에서는 서명 쿼리를 제거하고 최종 상태, 콘텐츠 유형, 처리 방식과 파일 정체를 확인하세요. 파일 하나가 저장됐다고 성공으로 간주하지 마세요.
범위를 제한한 수정 프롬프트
링크 HTML, 페이지 출처, 민감정보를 제거한 리디렉션 경로, 최종 응답 헤더로 상품 다운로드를 검토하세요. 일반 이동, 첨부 전달, fetch-to-Blob을 구분하세요. https://shop.example을 /files/spec.pdf, https://assets.shop.example/spec.pdf, https://shop.example:8443/spec.pdf, https://shop.example:443/spec.pdf와 비교해 출처 차이를 설명하세요. 제어 가능한 호스트와 이미 부여된 권한만으로 최소 수정을 제안하세요. 접근 검사, 서명 링크 만료, TLS와 사용자의 명시적 클릭을 유지하세요. 무제한 프록시나 브라우저 보호 해제를 추가하지 마세요. 필요한 헤더, 파일명 동작, 로딩·오류 상태, 실제 PDF·만료 링크·무권한 응답 테스트를 반환하세요. 확장자뿐 아니라 내용도 확인하세요. 실행하지 않은 테스트를 표시하고 비공개 쿼리 토큰을 숨기세요.
모델 자료는 공식 Opus 가이드입니다. 제안한 검토이며 모델이나 브라우저 다운로드 실측이 아닙니다. 2015년 커뮤니티 질문에도 같은 CORS 혼동이 있지만 과거 브라우저 정보를 현재 호환성 사실로 사용하지 않았습니다.
저장된 실제 파일 검증하기
제어하는 서버라면 후보 응답은 Content-Disposition: attachment; filename="product-spec.pdf"입니다. 올바른 콘텐츠 유형과 허가된 내용도 제공해야 합니다. 리디렉션 이후 최종 응답을 테스트하세요. 국제화 파일명은 서버가 지원하는 인코딩과 브라우저 실제 동작을 검증하고 신뢰할 수 없는 이름을 헤더에 직접 이어 붙이지 마세요.
Blob 흐름은 많은 데이터를 메모리에 보유할 수 있으며 요청 실패, 취소와 객체 URL 정리도 필요합니다. 큰 파일 이름을 바꾸려고만 도입하지 마세요. 완료 표시는 앱이 실제 관찰한 단계에 맞춰야 합니다. 탭 열기나 헤더 수신은 온전한 파일 저장을 증명하지 못합니다. 브라우저 설정에 따라 동작이 달라도 이해할 수 있는 대체 링크를 제공하세요.
전달 후 이름 충돌은 Unicode 파일명 가이드를 참고하세요. Panelly Studio에서 광고 소재를 만든 뒤 실제 저장 파일로 자신의 전달 경로를 테스트하세요. Opus 통합이나 Panelly 다운로드 구현을 여기서 검증했다는 뜻은 아닙니다.
다운로드 질문
상위 도메인이 같으면 같은 출처인가요?
아닙니다. 프로토콜, 호스트와 유효 포트가 출처를 결정합니다. 하위 도메인도 차이를 만듭니다.
첨부 헤더가 모든 사용자 설정을 덮어쓰나요?
아닙니다. 브라우저와 사용자 설정이 처리에 영향을 줍니다. 대상 환경을 검증하고 사용할 수 있는 대안을 제공하세요.
공개 프록시로 해결할 수 있나요?
보호되거나 서명된 소재를 임의의 프록시에 보내지 마세요. 권한과 만료 규칙을 유지하며 제어 가능한 전달 엔드포인트를 수정하세요.


