SDK 일반적인 문제
지정된 파일 스트림 또는 파일 핸들 방식으로 업로드 시, 콘텐츠가 잘리거나 크기가 0인 경우 어떻게 처리하나요?
파일 스트림 또는 파일 핸들 등의 방식으로 업로드하는 경우, 해당 스트림 또는 핸들에는 보통 오프셋 포인터가 포함됩니다. COS로 업로드하기 전에 해당 스트림 또는 핸들을 사용할 경우, 오프셋 포인터가 파일의 시작 위치를 가리키지 않을 수 있습니다. SDK로 업로드할 경우, 기본적으로 해당 오프셋이 가리키는 위치로부터 콘텐츠를 읽어오기 때문에 콘텐츠가 잘리거나 빈 파일이 업로드될 수 있습니다. 해당 오프셋을 검사하여 필요 시 오프셋이 수동으로 시작 위치를 가리키도록 설정하는 것을 권장합니다.
업로드 완료 후 파일 URL은 어떻게 가져오나요?
파일 업로드 시 '임시 키가 만료되었습니다'라는 오류가 보고됩니다. 어떻게 처리해야 하나요?
다음 순서에 따라 진단하십시오.
1. 현재 프로그램을 실행하고 있는 디바이스의 시간이 정확한지 확인하시고, 시간이 맞지 않는 경우 디바이스 시간을 정확한 시간으로 조정하시기 바랍니다.
2. 설정한 만료 시간(expirationDate)이 지났는지 확인합니다. 만료 시간이 지난 경우 서명 만료 오류가 발생합니다. 만료 시간 변경 후에는 임시 키를 다시 생성하십시오.
3. iOS SDK는 초기화 시 QCloudSignatureProvider와 QCloudCredentailFenceQueueDelegate의 두 프로토콜을 사용하며, QCloudCredentailFenceQueue 스캐폴드는 임시 키를 캐시하고 재사용합니다. credentialFenceQueue 인스턴스를 다시 초기화하여 캐시를 업데이트할 수 있으며, 이를 통해 만료된 임시 키 사용을 방지할 수 있습니다. 자세한 가이드 내용은 iOS SDK COS 서비스 인스턴스 생성을 참고하십시오. 파일 업로드 완료 여부는 어떻게 확인하나요?
COS에는 객체마다 Etag 값이 존재합니다. 파일 업로드 완료 후 String 유형의 Etag 값이 반환되며, 업로드 완료 시 NULL이 아닌 Etag가 반환됩니다. 판단 조건을 추가하여 파일 업로드 완료 여부를 확인할 수 있습니다.
링크 도용 방지를 설정한 후 App에서 링크 도용 방지를 설정한 객체를 어떻게 요청하나요?
요청 발송 시 지정 referer를 포함하는 Header를 추가하면 정상적으로 객체를 요청할 수 있습니다.
사전 서명된 링크를 생성하면 네트워크 요청 및 요금이 발생하나요? 딜레이가 발생하나요?
사전 서명된 링크 생성은 로컬 로직이므로, 네트워크 요청을 생성하지 않아 별도의 네트워크 딜레이 및 요금은 발생하지 않습니다. 사전 서명된 링크가 필요한 경우, 언제든지 SDK의 인터페이스를 호출하여 사전 서명된 링크를 생성할 수 있습니다.
COS의 사전 서명된 URL은 어떻게 도메인 URL로 사용자 정의하나요?
사전 서명 URL 방법은 고정된 기본 도메인으로, 직접 인코딩하여 변경해야 합니다.
COS SDK에서 어떻게 디렉터리를 생성하나요?
COS의 디렉터리는 가상 디렉터리이며, 실제로는 /로 끝나는 객체입니다. 객체 업로드 인터페이스를 호출하여 /로 끝나는 객체 키를 생성하면 하나의 디렉터리가 생성됩니다. 미니프로그램 SDK 디렉터리 생성 예시를 참고하십시오. COS SDK로 ObjectList 획득 시, 동일한 접두사 규칙과 데이터 구조가 다른 결과로 반환되나요?
COS는 사용자의 편의를 위해 콘솔, COSbrowser 등 도형화된 툴에 [폴더] 또는 [디렉터리]를 재현했습니다. 키 값이 project/이고 내용이 비어 있는 콘텐츠의 객체를 생성하여 기존의 폴더를 모방한 것입니다. 따라서 SDK를 통해 획득하는 ObjectList에는 객체 이름이 ‘/’로 끝나는 빈 객체가 포함됩니다.
SDK FAQ
문제 해결에 도움이 되었나요?