메인 콘텐츠로 건너뛰기

Documentation Index

Fetch the complete documentation index at: https://docs.replit.com/llms.txt

Use this file to discover all available pages before exploring further.

이 참조 가이드는 replit-object-storage-python 패키지의 Client 클래스를 설명하고, 클래스 메서드에 대한 코드 예제를 제공합니다.

Client

Client 클래스는 Replit App Storage와의 상호작용을 관리합니다. 이 클래스는 bucket 내 object에 대한 작업을 수행하는 메서드를 제공합니다. replit.object_storage 패키지에서 클래스를 가져오려면 Python 코드에 다음 줄을 추가하세요:
from replit.object_storage import Client
다음 코드를 사용하여 Replit App Storage와 상호작용하는 Client 인스턴스를 생성하세요:
client = Client()
앱이 여러 bucket을 사용하는 경우, bucket당 하나의 Client 인스턴스를 생성하세요.

__init__

init 메서드는 Client 클래스의 인스턴스를 초기화합니다.
def __init__(bucket_id: Optional[str] = None)
Argument:
  • bucket_id (Optional[str]): 클라이언트가 관리하는 bucket의 ID입니다. 생략하면 Client는 Replit App 또는 Deployment에 연결된 기본 bucket을 사용합니다.

copy

copy 메서드는 동일한 bucket 내에서 object를 복사합니다. 동일한 위치에 object가 이미 존재하는 경우 원본을 덮어씁니다.
def copy(object_name: str, dest_object_name: str) -> None
Arguments:
  • object_name (str) - 소스 object의 전체 경로입니다.
  • dest_object_name (str) - object 대상의 전체 경로입니다.
Raises:
  • ObjectNotFoundError - 지정된 경로에 소스 object가 존재하지 않음을 나타냅니다.

delete

delete 메서드는 App Storage에서 파일을 영구적으로 삭제합니다.
def delete(object_name: str, ignore_not_found: bool = False) -> None
Arguments:
  • object_name (str) - 삭제할 object의 이름입니다.
  • ignore_not_found (bool) - True이면 object가 존재하지 않을 때 오류를 억제합니다.
Raises:
  • ObjectNotFoundError - object가 존재하지 않음을 나타냅니다.

download_as_bytes

download_as_bytes 메서드는 파일의 내용을 bytes로 가져옵니다.
def download_as_bytes(object_name: str) -> bytes
Argument:
  • object_name (str) - 다운로드할 object의 이름입니다.
Returns:
  • bytes- object 내용의 원시 바이트 표현입니다.
Raises:
  • ObjectNotFoundError - object가 존재하지 않음을 나타냅니다.

download_as_text

download_as_text 메서드는 파일의 내용을 str 타입으로 다운로드합니다.
def download_as_text(object_name: str) -> str
Argument:
  • object_name (str) - 가져올 소스 object 이름입니다.
Returns:
  • str: UTF-8 인코딩 문자열로 된 object의 내용입니다.
Raises:
  • ObjectNotFoundError - object가 존재하지 않음을 나타냅니다.

download_to_filename

로컬 디스크의 파일에 object의 내용을 다운로드합니다.
def download_to_filename(object_name: str, dest_filename: str) -> None
Arguments:
  • object_name (str) - App Storage에서 가져올 소스 object의 이름입니다.
  • dest_filename (str) - 로컬 디스크의 대상 파일 이름입니다.
Raises:
  • ObjectNotFoundError - object가 존재하지 않음을 나타냅니다.

exists

exists 메서드는 object가 존재하는지 확인합니다.
def exists(object_name: str) -> bool
Argument:
  • object_name (str) - 존재 여부를 확인할 object의 이름입니다.
Returns:
  • bool: object가 존재하면 True, 그렇지 않으면 False입니다.

list

list 메서드는 bucket 내 object를 나열합니다.
def list(end_offset: Optional[str] = None,
         match_glob: Optional[str] = None,
         max_results: Optional[int] = None,
         prefix: Optional[str] = None,
         start_offset: Optional[str] = None) -> List[Object]
Arguments:
  • end_offset(Optional[str]) - 결과를 end_offset보다 사전식으로 앞에 있는 이름의 object로 필터링합니다. start_offset이 정의된 경우, 나열된 object의 이름은 start_offset(포함)과 end_offset(제외) 사이에 있습니다.
  • match_glob (Optional[str]) - glob 패턴을 사용하여 결과를 필터링합니다. 예: “foo*bar”는 “footbar”, “foo baz bar”, “foobar”와 일치합니다.
  • max_results (Optional[int]) - 응답에서 반환할 최대 결과 수입니다.
  • prefix (Optional[str]) - 이름이 지정된 prefix로 시작하는 object로 결과를 필터링합니다.
  • start_offset (Optional[str]) - 이름이 start_offset과 사전식으로 같거나 이후인 object로 결과를 필터링합니다. end_offset이 설정된 경우, 나열된 object의 이름은 start_offset(포함)과 end_offset(제외) 사이에 있습니다.
Returns:
  • List(Object): 주어진 쿼리 매개변수와 일치하는 object 목록입니다.

upload_from_filename

upload_from_filename()을 사용하여 로컬 디스크의 소스 파일에서 App Storage로 object를 업로드합니다.
def upload_from_filename(dest_object_name: str, src_filename: str) -> None
Arguments:
  • dest_object_name(str) - 업로드된 파일의 이름입니다.
  • src_filename(str) - 업로드할 소스 파일입니다.

upload_from_bytes

upload_from_bytes 메서드는 bytes 데이터로부터 object를 업로드합니다.
def upload_from_bytes(dest_object_name: str, src_data: bytes) -> None
Arguments:
  • dest_object_name(str) - 업로드할 object의 이름입니다.
  • src_data(str) - 업로드할 bytes 데이터입니다.

upload_from_text

upload_from_text 메서드는 문자열로부터 object를 업로드합니다.
def upload_from_text(dest_object_name: str, src_data: Union[bytes, str]) -> None
Arguments:
  • dest_object_name(str) - 업로드할 object의 이름입니다.
  • src_data(str)- 업로드할 텍스트 데이터입니다.

예외 타입

  • Client를 사용하여 Replit App Storage와 상호작용할 때, 어떤 메서드든 다음 오류 중 하나를 반환할 수 있습니다:
    • BucketNotFoundError: 구성된 bucket 이름이 App Storage의 어떤 bucket과도 일치하지 않음을 나타냅니다.
    • DefaultBucketError: 기본 bucket 구성이 누락되었음을 나타냅니다.
    • ForbiddenError: bucket에 대한 접근 권한이 부족함을 나타냅니다.
    • TooManyRequestsError: 과도한 요청으로 인해 작업이 속도 제한되었음을 나타냅니다.
    • UnauthorizedError: 인증이 해당 작업에 대한 접근을 제한했음을 나타냅니다.

클래스 메서드 예제

다음 섹션에서는 Replit App Storage SDK를 사용하여 object를 관리하는 코드 예제를 제공합니다.

파일을 텍스트로 가져오기

client.download_as_text("file.json")

파일의 원시 바이트 가져오기

client.download_as_bytes("file.png")

로컬 파일 시스템으로 파일 다운로드

client.download_to_filename("file.json", dest_filename)

bucket 내 object 나열

client.list()

텍스트로 파일 업로드

client.upload_from_text("file.json", data)

bytes로 파일 업로드

client.upload_from_bytes("file.png", data)

파일 시스템에서 object 업로드

client.upload_from_filename("file.json", src_filename)

bucket에서 object 삭제

client.delete("file.json")