For the complete documentation index, see llms.txt. This page is also available as Markdown.

로컬 파일 싱크

데이터를 로컬 파일에 저장합니다.

CSV, JSON 및 텍스트 파일 형식을 지원하고, 여러 항목을 하나의 파일로 집계하거나 각 항목을 개별적으로 저장하는 구성 가능한 출력 모드를 통해 워크플로 데이터의 파일 저장을 로컬 파일 시스템의 파일로 수행하여, 지속적 데이터 저장, 로깅 및 파일 기반 데이터 내보내기를 가능하게 합니다.

이 블록의 작동 방식

이 블록은 워크플로 단계의 문자열 콘텐츠를 로컬 파일 시스템의 파일에 씁니다. 이 블록은:

  1. 문자열 콘텐츠(포매터, 예측 또는 기타 문자열 생성 블록에서)와 파일 구성을 입력으로 받습니다

  2. 파일 시스템 액세스 권한을 검증합니다(환경 구성에 따라 로컬 저장소 액세스가 허용되는지 확인합니다)

  3. 대상 디렉터리에 대한 쓰기 권한을 확인합니다(구성된 경우 허용된 쓰기 디렉터리 제한과 대조하여 확인합니다)

  4. 다음에 따라 적절한 파일 저장 전략을 선택합니다 출력 모드:

    • 별도 파일 모드: 각 입력마다 새 파일을 생성하고, 타임스탬프가 포함된 고유한 파일명을 생성합니다

    • 로그 추가 모드: 기존 파일에 콘텐츠를 추가하거나(필요한 경우 새 파일을 생성) 여러 항목을 집계합니다

  5. 다음의 경우 별도 파일 모드: 대상 디렉터리, 파일 이름 접두사, 파일 형식 및 타임스탬프를 사용해 고유한 파일 경로를 생성한 다음 새 파일에 콘텐츠를 씁니다

  6. 다음의 경우 로그 추가 모드:

    • 파일 이름 접두사와 유형을 기반으로 파일을 열거나 생성합니다

    • 추가할 때 파일 형식별 처리를 적용합니다:

      • CSV: 이후 추가에서는 헤더 행을 제거합니다(CSV 콘텐츠는 첫 번째 쓰기에서 헤더를 포함해야 합니다)

      • JSON: JSONL(JSON Lines) 형식으로 변환하며, 각 JSON 문서를 파싱한 뒤 다시 직렬화하여 한 줄에 들어가도록 합니다

      • TXT: 줄바꿈을 사용해 콘텐츠를 직접 추가합니다

    • 항목 수를 추적하고 다음 경우 새 파일을 생성합니다 max_entries_per_file 한도에 도달함

  7. 존재하지 않으면 상위 디렉터리를 생성합니다

  8. 파일에 콘텐츠를 씁니다(개행으로 끝나도록 보장)

  9. 저장 성공 또는 실패를 나타내는 오류 상태와 메시지를 반환합니다

이 블록은 두 가지 서로 다른 저장 전략을 지원합니다. separate_files 모드는 각 입력마다 개별적인 타임스탬프 파일을 생성하며(실행별로 출력을 정리하는 데 유용함), append log 모드는 여러 항목을 연속적인 로그 파일로 집계합니다(시계열 데이터 로깅에 유용함). 파일 경로 생성에는 고유한 파일명과 시간순 정리를 보장하기 위해 타임스탬프(형식: YYYY_MM_DD_HH_MM_SS_microseconds)가 포함됩니다. append log 모드에서는 블록이 실행 간에 파일 핸들을 유지하고, 항목 한도에 도달하면 파일 로테이션을 자동으로 처리합니다.

요구 사항

로컬 파일 시스템 액세스: 이 블록은 로컬 파일 시스템에 대한 쓰기 액세스가 필요합니다. 파일 시스템 액세스는 환경 변수를 통해 제어할 수 있습니다:

  • 설정 ALLOW_WORKFLOW_BLOCKS_ACCESSING_LOCAL_STORAGE=False 로컬 파일 싱크 기능을 비활성화합니다(블록이 오류를 발생시킴)

  • 설정 WORKFLOW_BLOCKS_WRITE_DIRECTORY 를 절대 경로로 설정하여 쓰기를 특정 디렉터리와 그 하위 디렉터리로만 제한합니다

Append Log 모드 형식 처리에 대한 참고:

  • append 모드의 CSV 파일의 경우, 첫 번째 쓰기 시 콘텐츠에 헤더 행이 포함되어야 하며, 이후 추가에서는 헤더가 자동으로 제거됩니다

  • append 모드의 JSON 파일은 다음과 함께 저장됩니다 .jsonl 확장자를 사용한 JSON Lines 형식(한 줄당 JSON 객체 1개)

일반적인 사용 사례

  • 데이터 로깅 및 감사 추적: 워크플로 실행 데이터, 탐지 결과 또는 메트릭을 로컬 로그 파일에 저장합니다(예: 탐지 결과의 CSV 로그를 append, 워크플로 출력의 JSON 로그를 append). 이를 통해 프로덕션 워크플로를 위한 지속적 로깅과 감사 추적이 가능해집니다

  • 파일 기반 데이터 내보내기: 포맷된 워크플로 데이터를 외부 처리를 위해 파일로 내보냅니다(예: CSV Formatter의 CSV 내보내기 저장, 하위 도구용 JSON 내보내기 저장). 이를 통해 파일 기반 데이터 처리 파이프라인과의 통합이 가능해집니다

  • 시계열 데이터 수집: 워크플로 메트릭을 시간에 따라 연속 로그 파일로 집계합니다(예: 타임스탬프가 포함된 CSV 행 추가, 프레임별 탐지 수 기록). 이를 통해 분석 및 보고를 위한 지속적인 시계열 데이터셋을 생성합니다

  • 배치 결과 저장: 배치 처리 워크플로의 개별 결과를 별도 파일로 저장합니다(예: 각 이미지의 탐지 결과를 개별 JSON 파일로 저장). 이를 통해 고유한 파일명으로 배치 처리 출력물을 체계적으로 저장할 수 있습니다

  • 데이터 아카이빙: 워크플로 출력과 결과를 로컬 저장소에 보관합니다(예: 포맷된 보고서 저장, 분석 결과 내보내기). 이를 통해 장기 보관과 백업 워크플로가 가능해집니다

  • 파일 기반 시스템과의 통합: 워크플로 데이터를 외부 도구와 호환되는 파일 형식으로 저장합니다(예: 스프레드시트 분석용 CSV 저장, 데이터 처리 파이프라인용 JSONL 저장). 이를 통해 파일 기반 시스템과 원활한 데이터 교환이 가능합니다

다른 블록에 연결하기

이 블록은 워크플로 단계에서 문자열 콘텐츠를 받아 파일로 저장합니다:

  • 포맷터 블록 다음 (예: CSV Formatter) 형식화된 데이터(CSV, JSON 또는 텍스트)를 파일에 저장하여 구조화된 워크플로 출력의 지속적 저장을 가능하게 합니다

  • 탐지 또는 분석 블록 뒤에서 문자열 형식의 데이터를 출력하는 블록(예: 추론 결과, 메트릭 또는 분석 결과를 로깅이나 아카이빙을 위해 파일에 저장합니다

  • 데이터 처리 블록 다음 문자열 출력을 생성하는 블록(예: Expression, Property Definition)에서 계산되거나 변환된 데이터를 파일에 저장합니다

  • 로깅 워크플로에서 : 워크플로 실행의 지속적인 감사 추적과 로그를 생성하여, 프로덕션 배포를 위한 기록 유지와 디버깅을 가능하게 합니다

  • 배치 처리 워크플로에서 : 여러 데이터 포인트를 저장해야 하는 경우(로그 파일로 집계하거나 별도 파일로 저장), 체계적인 데이터 수집과 저장을 가능하게 합니다

  • 외부 처리 전에 : 워크플로 데이터를 로컬 파일 시스템 저장소에서 읽는 외부 도구, 스크립트 또는 시스템이 사용할 수 있도록 파일에 저장해야 하는 경우

유형 식별자

단계에서 다음 식별자를 사용하세요 "type" 필드: roboflow_core/local_file_sink@v1 워크플로우에 이 블록을 단계로 추가하려면.

속성

이름

유형

설명

참조

name

str

이 단계에 대한 고유 식별자를 입력하세요..

파일 유형

str

생성할 파일의 유형: 'csv'(CSV 형식), 'json'(JSON 형식, 또는 append_log 모드에서 JSONL), 또는 'txt'(일반 텍스트). 콘텐츠 형식은 이 파일 유형과 일치해야 합니다. append_log 모드에서는 JSON 파일이 한 줄당 하나의 JSON 객체를 포함하는 .jsonl(JSON Lines) 형식으로 저장됩니다..

출력 모드

str

파일 구성 전략: 'append_log'는 여러 콘텐츠 항목을 하나의 파일로 집계하고(시계열 로깅에 유용하며, 시간이 지남에 따라 파일이 커짐), 'separate_files'는 각 입력마다 새 파일을 생성합니다(개별 출력을 정리하는 데 유용하며, 각 파일은 고유한 타임스탬프 기반 파일명을 받음). append_log 모드에서는 블록이 형식별 추가 처리(CSV 헤더 제거, JSON을 JSONL로 변환)를 수행합니다..

target_directory

str

파일이 저장될 디렉터리 경로입니다. 상대 경로나 절대 경로일 수 있습니다. 상위 디렉터리가 존재하지 않으면 자동으로 생성됩니다. WORKFLOW_BLOCKS_WRITE_DIRECTORY가 설정되어 있으면 이 경로는 허용된 디렉터리의 하위 디렉터리여야 합니다. 파일은 file_name_prefix와 타임스탬프로 생성된 파일명으로 저장됩니다..

파일 이름 접두사

str

파일명 생성에 사용되는 접두사입니다. 타임스탬프(형식: YYYY_MM_DD_HH_MM_SS_microseconds)와 파일 확장자를 결합하여 'workflow_output_2024_10_18_14_09_57_622297.csv'와 같은 고유한 파일명을 생성합니다. append_log 모드에서는 max_entries_per_file에 도달하면 이 접두사에 새 타임스탬프를 사용해 새 파일이 생성됩니다..

max_entries_per_file

정수

append_log 모드에서 파일당 허용되는 최대 항목 수(콘텐츠 추가 수)입니다. 이 한도에 도달하면 동일한 file_name_prefix와 새 타임스탬프로 새 파일이 생성됩니다. output_mode가 'append_log'일 때만 적용됩니다. 최소 1이어야 합니다. 파일 크기를 제어하고 장시간 실행되는 워크플로에서 파일 로테이션을 활성화하는 데 사용하세요..

참조 열은 워크플로우 런타임에서 사용 가능한 동적 값으로 속성을 매개변수화할 수 있는 가능성을 나타냅니다 워크플로우 런타임입니다. 자세한 내용은 바인딩 을 참조하세요.

런타임 호환성

소프트 - 런타임 전용 배포 : 파일은 배포 볼륨에 유지되지만 Roboflow API를 통해서는 검색할 수 없습니다. 내부 전용 로그로 취급하세요.

소프트 - 런타임 호스팅 서버리스 : 컨테이너 디스크는 임시 저장소이므로 워커가 축소되면 파일이 손실됩니다. 워크플로 요청을 소비하는 복제본이 하나 이상이면 결과는 비결정적일 수 있습니다..

입력 및 출력 바인딩

사용 가능한 연결은 바인딩 유형에 따라 달라집니다. 어떤 바인딩 유형인지 확인하세요 로컬 파일 싱크 버전 v1 을 가지고 있는지.

입력 및 출력 바인딩
  • 입력

    • 콘텐츠 (string): 파일로 저장할 문자열 콘텐츠입니다. 이는 다른 워크플로 블록에서 나온 형식화된 데이터여야 합니다(예: CSV Formatter의 CSV 콘텐츠, JSON 문자열 또는 일반 텍스트). 콘텐츠 형식은 지정된 file_type과 일치해야 합니다. append_log 모드의 CSV 파일은 첫 번째 쓰기 시 헤더 행을 포함해야 합니다..

    • target_directory (string): 파일이 저장될 디렉터리 경로입니다. 상대 경로나 절대 경로일 수 있습니다. 상위 디렉터리가 존재하지 않으면 자동으로 생성됩니다. WORKFLOW_BLOCKS_WRITE_DIRECTORY가 설정되어 있으면 이 경로는 허용된 디렉터리의 하위 디렉터리여야 합니다. 파일은 file_name_prefix와 타임스탬프로 생성된 파일명으로 저장됩니다..

    • 파일 이름 접두사 (string): 파일명 생성에 사용되는 접두사입니다. 타임스탬프(형식: YYYY_MM_DD_HH_MM_SS_microseconds)와 파일 확장자를 결합하여 'workflow_output_2024_10_18_14_09_57_622297.csv'와 같은 고유한 파일명을 생성합니다. append_log 모드에서는 max_entries_per_file에 도달하면 이 접두사에 새 타임스탬프를 사용해 새 파일이 생성됩니다..

    • max_entries_per_file (string): append_log 모드에서 파일당 허용되는 최대 항목 수(콘텐츠 추가 수)입니다. 이 한도에 도달하면 동일한 file_name_prefix와 새 타임스탬프로 새 파일이 생성됩니다. output_mode가 'append_log'일 때만 적용됩니다. 최소 1이어야 합니다. 파일 크기를 제어하고 장시간 실행되는 워크플로에서 파일 로테이션을 활성화하는 데 사용하세요..

  • 출력

    • error_status (boolean): 불리언 플래그.

    • message (string): 문자열 값.

예시 JSON 정의

마지막 업데이트

도움이 되었나요?