Filesystem
WatchDir
Server-streaming RPC. Use the Connect protocol with streaming support.
POST
/
filesystem.Filesystem
/
WatchDir
WatchDir
curl --request POST \
--url https://{port}-{sandboxID}.e2b.app/filesystem.Filesystem/WatchDir \
--header 'Authorization: Basic <encoded-value>' \
--header 'Connect-Protocol-Version: <connect-protocol-version>' \
--header 'Content-Type: application/connect+json' \
--header 'X-Access-Token: <api-key>' \
--data '
{
"path": "<string>",
"recursive": true
}
'import requests
url = "https://{port}-{sandboxID}.e2b.app/filesystem.Filesystem/WatchDir"
payload = {
"path": "<string>",
"recursive": True
}
headers = {
"Connect-Protocol-Version": "<connect-protocol-version>",
"X-Access-Token": "<api-key>",
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/connect+json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'Connect-Protocol-Version': '<connect-protocol-version>',
'X-Access-Token': '<api-key>',
Authorization: 'Basic <encoded-value>',
'Content-Type': 'application/connect+json'
},
body: JSON.stringify({path: '<string>', recursive: true})
};
fetch('https://{port}-{sandboxID}.e2b.app/filesystem.Filesystem/WatchDir', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{port}-{sandboxID}.e2b.app/filesystem.Filesystem/WatchDir",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'path' => '<string>',
'recursive' => true
]),
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"Connect-Protocol-Version: <connect-protocol-version>",
"Content-Type: application/connect+json",
"X-Access-Token: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{port}-{sandboxID}.e2b.app/filesystem.Filesystem/WatchDir"
payload := strings.NewReader("{\n \"path\": \"<string>\",\n \"recursive\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Connect-Protocol-Version", "<connect-protocol-version>")
req.Header.Add("X-Access-Token", "<api-key>")
req.Header.Add("Authorization", "Basic <encoded-value>")
req.Header.Add("Content-Type", "application/connect+json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://{port}-{sandboxID}.e2b.app/filesystem.Filesystem/WatchDir")
.header("Connect-Protocol-Version", "<connect-protocol-version>")
.header("X-Access-Token", "<api-key>")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/connect+json")
.body("{\n \"path\": \"<string>\",\n \"recursive\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{port}-{sandboxID}.e2b.app/filesystem.Filesystem/WatchDir")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Connect-Protocol-Version"] = '<connect-protocol-version>'
request["X-Access-Token"] = '<api-key>'
request["Authorization"] = 'Basic <encoded-value>'
request["Content-Type"] = 'application/connect+json'
request.body = "{\n \"path\": \"<string>\",\n \"recursive\": true\n}"
response = http.request(request)
puts response.read_body{
"filesystem": {
"name": "<string>"
}
}{
"message": "<string>",
"code": 123,
"sandboxID": "<string>"
}Authorizations
Sandbox access token (envdAccessToken) for authenticating requests to a running sandbox. Returned by: POST /sandboxes (on create), POST /sandboxes/{sandboxID}/connect (on connect), POST /sandboxes/{sandboxID}/resume (on resume), and GET /sandboxes/{sandboxID} (for running or paused sandboxes).
Optional system user for the operation. Sets file ownership and resolves relative paths. Pass the desired username with no password. Defaults to the sandbox's default user when omitted.
Headers
Define the version of the Connect protocol
Define the timeout, in ms
Response
Stream of WatchDirResponse events
- WatchDirResponse
- WatchDirResponse
- WatchDirResponse
Show child attributes
Show child attributes
Was this page helpful?
Previous
CloseStdinClose stdin to signal EOF to the process.
Only works for non-PTY processes. For PTY, send Ctrl+D (0x04) instead.
Next
⌘I
WatchDir
curl --request POST \
--url https://{port}-{sandboxID}.e2b.app/filesystem.Filesystem/WatchDir \
--header 'Authorization: Basic <encoded-value>' \
--header 'Connect-Protocol-Version: <connect-protocol-version>' \
--header 'Content-Type: application/connect+json' \
--header 'X-Access-Token: <api-key>' \
--data '
{
"path": "<string>",
"recursive": true
}
'import requests
url = "https://{port}-{sandboxID}.e2b.app/filesystem.Filesystem/WatchDir"
payload = {
"path": "<string>",
"recursive": True
}
headers = {
"Connect-Protocol-Version": "<connect-protocol-version>",
"X-Access-Token": "<api-key>",
"Authorization": "Basic <encoded-value>",
"Content-Type": "application/connect+json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {
'Connect-Protocol-Version': '<connect-protocol-version>',
'X-Access-Token': '<api-key>',
Authorization: 'Basic <encoded-value>',
'Content-Type': 'application/connect+json'
},
body: JSON.stringify({path: '<string>', recursive: true})
};
fetch('https://{port}-{sandboxID}.e2b.app/filesystem.Filesystem/WatchDir', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://{port}-{sandboxID}.e2b.app/filesystem.Filesystem/WatchDir",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'path' => '<string>',
'recursive' => true
]),
CURLOPT_HTTPHEADER => [
"Authorization: Basic <encoded-value>",
"Connect-Protocol-Version: <connect-protocol-version>",
"Content-Type: application/connect+json",
"X-Access-Token: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://{port}-{sandboxID}.e2b.app/filesystem.Filesystem/WatchDir"
payload := strings.NewReader("{\n \"path\": \"<string>\",\n \"recursive\": true\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Connect-Protocol-Version", "<connect-protocol-version>")
req.Header.Add("X-Access-Token", "<api-key>")
req.Header.Add("Authorization", "Basic <encoded-value>")
req.Header.Add("Content-Type", "application/connect+json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://{port}-{sandboxID}.e2b.app/filesystem.Filesystem/WatchDir")
.header("Connect-Protocol-Version", "<connect-protocol-version>")
.header("X-Access-Token", "<api-key>")
.header("Authorization", "Basic <encoded-value>")
.header("Content-Type", "application/connect+json")
.body("{\n \"path\": \"<string>\",\n \"recursive\": true\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://{port}-{sandboxID}.e2b.app/filesystem.Filesystem/WatchDir")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Connect-Protocol-Version"] = '<connect-protocol-version>'
request["X-Access-Token"] = '<api-key>'
request["Authorization"] = 'Basic <encoded-value>'
request["Content-Type"] = 'application/connect+json'
request.body = "{\n \"path\": \"<string>\",\n \"recursive\": true\n}"
response = http.request(request)
puts response.read_body{
"filesystem": {
"name": "<string>"
}
}{
"message": "<string>",
"code": 123,
"sandboxID": "<string>"
}