{"templateId":"markdown","sharedDataIds":{"sidebar":"sidebar-guides/sidebars.yaml"},"props":{"metadata":{"markdoc":{"tagList":["admonition"]},"type":"markdown"},"seo":{"title":"Sending and Receiving Files","description":"Accelerate E&P application development and protect your innovation by consuming our Data and Domain APIs / Platform APIs.","lang":"en-US","meta":[{"name":"robots","content":"noindex"}],"llmstxt":{"hide":true,"excludeFiles":[]}},"dynamicMarkdocComponents":[],"compilationErrors":[],"ast":{"$$mdtype":"Tag","name":"article","attributes":{},"children":[{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"sending-and-receiving-files","__idx":0},"children":["Sending and Receiving Files"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This section outlines the procedures and configurations necessary for sending and receiving files using the SDK."," ","The process involves two primary directories, one for incoming files (referred to as the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["FileIn"]}," folder) and another"," ","for outgoing files (referred to as the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["FileOut"]}," folder). Understanding these mechanisms is crucial for leveraging"," ","the file transfer capabilities of the SDK effectively."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"filein-and-fileout-folders","__idx":1},"children":["FileIn and FileOut Folders"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["When integrating our SDK into your application, especially within a containerized environment, the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["FileIn"]}," and"," ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["FileOut"]}," folders play a pivotal role in managing file transfers:"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["FileIn Folder"]},": This is the designated directory for receiving files. Any files transferred ",{"$$mdtype":"Tag","name":"em","attributes":{},"children":["to"]}," your application will appear in this folder."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["FileOut Folder"]},": This folder is intended for files that are being sent from your application. Place any files you wish to send in this directory."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"shared-folders-in-container-configuration","__idx":2},"children":["Shared Folders in Container Configuration"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["For applications running in containers, the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["FileIn"]}," and ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["FileOut"]}," folders are shared with the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["FileManager"]}," component through"," ","the container's configuration settings. This setup facilitates seamless file transfers between your application and the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["FileManager"]},"."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"file-transfer-phases","__idx":3},"children":["File Transfer Phases"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Files in the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["FileOut"]}," folder move through several stages during the transfer process, represented by subfolders within ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["FileOut"]},":"]},{"$$mdtype":"Tag","name":"ul","attributes":{},"children":[{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["InProgress"]},": Files currently being uploaded are placed in the FileOut/InProgress subfolder. Removing a file from this folder will cancel the upload process."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Failed"]},": Should an upload attempt fail, the file will be relocated to the FileOut/Failed subfolder."]},{"$$mdtype":"Tag","name":"li","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Complete"]},": Successfully uploaded files are moved to the FileOut/Complete subfolder."]}]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["It is important for apps to periodically check the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["FileIn"]}," folder for incoming files to ensure they are processed timely, and it"," ","is the responsibility of the app to clean the file once it is consumed to make sure files do not pile up, potentially causing full disk issues on the gateway."]},{"$$mdtype":"Tag","name":"Admonition","attributes":{"type":"info"},"children":[{"$$mdtype":"Tag","name":"p","attributes":{},"children":[{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["FileManager"]}," does not delete any file within ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["FileIn"]},"."]}]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"development-and-configuration","__idx":4},"children":["Development and Configuration"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["During the development phase, you can simulate file transfers by manually placing files into the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["FileIn"]}," and ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["FileOut"]}," folders. However,"," ","for production deployment, it is advised to use configuration parameters to set the paths for these folders. This approach allows"," ","the operations team to adjust shared volume settings, ensuring your application connects seamlessly with the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["FileManager"]}," and other components."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["By following these guidelines, you can integrate file transfer functionalities into your app efficiently."]},{"$$mdtype":"Tag","name":"hr","attributes":{},"children":[]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":2,"id":"sharing-files-at-the-edge","__idx":5},"children":["Sharing Files at the Edge"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["This section delves into the mechanisms and protocols involved in sharing files with users at the edge, emphasizing"," ","security, accessibility, and simplicity. Agora enables file sharing through a web interface, utilizing"," ","authentication and authorization (AuthN/Z) protocols to ensure secure and controlled access to files and folders"," ","shared by your application."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"web-page-integration-for-file-sharing","__idx":6},"children":["Web Page Integration for File Sharing"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["Files and folders intended for sharing at the edge are accessible via a dedicated web page. This web page is designed"," ","to implement robust AuthN/Z mechanisms, safeguarding the access to shared resources. Only users who have been"," ","authenticated (verified their identity) and authorized (granted permission) can access the files and folders shared"," ","by your application."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"role-of-the-operations-team","__idx":7},"children":["Role of the Operations Team"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["The configuration of AuthN/Z is meticulously maintained by the operations team. This configuration is crucial for"," ","enabling end users in the field to securely access the edge website, provided the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["Edge Application Gateway (EAG)"]}," ","is deployed and operational. The operations team plays a pivotal role in ensuring the security protocols are up to"," ","date and effectively protect the shared files and folders."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"simplified-process-for-file-sharing","__idx":8},"children":["Simplified Process for File Sharing"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["To facilitate a streamlined and secure file-sharing process, your application can share files and folders at the edge"," ","by organizing them into a designated folder. This setup requires configuring the shared volumes on the container to"," ","allow access by the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["FileManager"]},". The ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["FileManager"]}," actively monitors the application's ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["LocalShare"]}," folder and"," ","utilizes the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["EAG"]}," to publish the files, making them accessible via the edge website."]},{"$$mdtype":"Tag","name":"Heading","attributes":{"level":3,"id":"security-and-access-control","__idx":9},"children":["Security and Access Control"]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["A key aspect of this file-sharing mechanism is that shared files are exclusively available for download by authorized"," ","users. This ensures that sensitive or proprietary information remains secure and is only accessible to users who have"," ","been granted explicit permission. Moreover, this system is designed with a security-first approach, meaning authorized"," ","users are restricted from uploading files to your application through this mechanism. This restriction further"," ","enhances the security posture by limiting the potential vectors for unauthorized access or data breaches."]},{"$$mdtype":"Tag","name":"p","attributes":{},"children":["By adhering to these guidelines and leveraging the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["FileManager"]}," along with the ",{"$$mdtype":"Tag","name":"strong","attributes":{},"children":["EAG"]},", your application can securely"," ","share files and folders with users at the edge, ensuring that only authorized individuals have access to the shared"," ","resources. This system not only prioritizes security but also simplifies the process of file sharing, making it an"," ","efficient solution for edge-based file distribution."]}]},"headings":[{"value":"Sending and Receiving Files","id":"sending-and-receiving-files","depth":2},{"value":"FileIn and FileOut Folders","id":"filein-and-fileout-folders","depth":3},{"value":"Shared Folders in Container Configuration","id":"shared-folders-in-container-configuration","depth":3},{"value":"File Transfer Phases","id":"file-transfer-phases","depth":3},{"value":"Development and Configuration","id":"development-and-configuration","depth":3},{"value":"Sharing Files at the Edge","id":"sharing-files-at-the-edge","depth":2},{"value":"Web Page Integration for File Sharing","id":"web-page-integration-for-file-sharing","depth":3},{"value":"Role of the Operations Team","id":"role-of-the-operations-team","depth":3},{"value":"Simplified Process for File Sharing","id":"simplified-process-for-file-sharing","depth":3},{"value":"Security and Access Control","id":"security-and-access-control","depth":3}],"frontmatter":{"seo":{"title":"Sending and Receiving Files"}},"lastModified":"2025-09-17T21:07:24.000Z","pagePropGetterError":{"message":"","name":""}},"slug":"/solutions/agora/referencemanual/files","userData":{"isAuthenticated":false,"teams":["anonymous"]},"isPublic":true}