Endpoint: /sites/{siteId}/filesystem/folders/{folderid}

Returns folder settings, updates folder settings, creates folders, and deletes folders.

NOTE: Updated on EFT 8.1; now includes the Upload Quota Settings.
  • GET

  • POST

  • PATCH

  • DELETE

Method & URL

GET https://[server URL]:[port]/admin/v2/sites/{siteId}/filesystem/folders/{folderid}

GET Body Sample

Copy
##### GET the Folder structure and settings for a specifc User   #########
@User_Folder_ID = AFAR
GET https://{{host}}/admin/v2/sites/{{Siteid}}/filesystem/folders/%2Fusr%2F{{User_Folder_ID}}
%2F HTTP/1.1
Authorization: EFTAdminAuthToken {{AuthToken}}

GET Response Body Sample

Copy
HTTP/1.1 200 OK Date: Mon, 08 Aug 2022 17:04:14 GMT Content-Type: application/vnd.api+json 
ETag: "95FFEAF1" Content-Length: 470 Cache-Control: no-cache, no-store, must-revalidate 
Expires: -1 X-Content-Type-Options: nosniff X-XSS-Protection: 1; mode=block 
Content-Security-Policy: default-src 'self' 'unsafe-inline' 'unsafe-eval' data:; 
Referrer-Policy: no-referrer
{ "data": { "attributes": { "name": "AFAR", "subFolders": [], "target": null, "uploadQuota": null }, 
"id": "%2Fusr%2FAFAR%2F", "links": { "self": 
"/admin/v2/sites/e82de253-b8ec-4b70-a72d-d017c3317f01/filesystem/folders/%252Fusr%252FAFAR%252F" }, 
"relationships": { "inheritedPermissions": { "meta": { "name": "inherited permissions" } }, 
"permissions": { "links": { "related": 
"/admin/v2/sites/e82de253-b8ec-4b70-a72d-d017c3317f01/filesystem/folders/%252Fusr%252FAFAR%252F/
permissions" } } }, "type": "folder" } }

GET PowerShell Sample

Copy
# get filesystem folders
Write-Output "filesystem folders"
Write-Output "-----"
$folderList = Invoke-RestMethod -Uri "$baseURL/v2/sites/$siteID/filesystem/folders/%2Fusr%2F" -Method 'GET' -Headers $authHeader
Write-Output $folderList | ConvertTo-Json
foreach ($user in $folderList.data)
{
    Write-Output ("User $($user.id): $($user.attributes.loginName)")
}

Method & URL

POST https://[server URL]:[port]/admin/v2/sites/{siteId}/filesystem/folders/{folderid}

POST Body Sample

Copy
###
POST https://{{host}}/admin/v2/sites/{{Siteid}}/filesystem/folders/%2fusr%2fdyelacic%2f/folders HTTP/1.1
Authorization: EFTAdminAuthToken {{AuthToken}}

{
    "data": {
        "type": "folder",
        "id": "%2Fbiohazard%2F",
        "attributes": {
            "name": "biohazard",
            "target": "c:/temp"
        }
    }
}

POST Body Sample  - Example II – including Upload Quotas

Copy
##### POST REQUEST TO CREATE A FOLDER WITH UPLOAD QUOTA ENABLED #########
@User_Folder = afar
POST https://{{host}}/admin/v2/sites/{{Siteid}}/filesystem/folders/
%2Fusr%2F{{User_Folder}}%2F/folders HTTP/1.1
Authorization: EFTAdminAuthToken {{AuthToken}}
{
  "data": {
    "type": "folder",
    "attributes": {
      "name": "Folder4",
      "subFolder": "Folder4",
    "uploadQuota": {
        "emailsToReportToOnExceed": [
          "gsqaaf1@gmail.com",
          "gsqaaf2@gmail.com"
        ],
        "enabled": true,
        "limitMBytes": 150,
        "usedMBytes": 0
      }
    }
  }
}

POST Response Body Sample

Copy
{ "data": { "attributes": { "name": "biohazard", "subFolders": [], "target": "c:/temp" }, 
"id": "%2Fusr%2Fdyelacic%2Fbiohazard%2F", "links": { "self": 
"/Admin/v2/sites/f1e58e70-926f-4786-877b-cf62abfdf0db/filesystem/folders/
%252Fusr%252Fdyelacic%252Fbiohazard%252F" }, "relationships": { "inheritedPermissions": {
"meta": { "name": "inherited permissions" } }, "permissions": { "links": {
"related": "/Admin/v2/sites/f1e58e70-926f-4786-877b-cf62abfdf0db/filesystem/folders/
%252Fusr%252Fdyelacic%252Fbiohazard%252F/permissions" } } }, "type": "folder" } }

POST PowerShell Sample

Copy
$update = 
'{
    "data": {
        "type": "folder",
        "id": "%2Fmetallica2%2F",
        "attributes": {
            "name": "metallica2",
            "target": "c:/util"
        }
    }
}'
$update = $update | ConvertFrom-Json
$update = $update | ConvertTo-Json -Depth 20
# update filesystem folders
Write-Output "filesystem folders"
Write-Output "-----"
$folderList = Invoke-RestMethod -Uri 
"$baseURL/v2/sites/$siteID/filesystem/folders/%2fusr%2fFranklin%2f" 
-Method 'POST' -Headers $authHeader -Body $update
Write-Output $folderList | ConvertTo-Json
foreach ($user in $folderList.data)
{
    Write-Output ("User $($user.id): $($user.attributes.loginName)")
}

Method & URL

PATCH https://[server URL]:[port]/admin/v2/sites/{siteId}/filesystem/folders/{folderid}

PATCH Body Sample

Copy
#
# change the path to where this virtual folder points
#
###
PATCH https://{{host}}/admin/v2/sites/{{Siteid}}/filesystem/folders/
%2Fusr%2Ftest_user_sql%2Fmetallica%2F HTTP/1.1
Authorization: EFTAdminAuthToken {{AuthToken}}

{
  "data": {
    "attributes": {
      "name": "metallica",
      "subFolders": [],
      "target": {
        "type": "winFolder",
        "winFolder": {
          "path": "C:\\temp"
        }
      },
      "uploadQuota": null
    },
    "id": "%2Fusr%2Ftest_user_sql%2Fmetallica%2F",
    "type": "folder"
  }
}
###

PATCH Response Body Sample

Copy
HTTP/1.1 200 OK Date: Thu, 18 Aug 2022 13:31:59 GMT Content-Type: application/vnd.api+json E
Tag: "B0A1B271" Content-Length: 590 Cache-Control: no-cache, no-store, must-revalidate 
Expires: -1 X-Content-Type-Options: nosniff X-XSS-Protection: 1; mode=block 
Content-Security-Policy: default-src 'self' 'unsafe-inline' 'unsafe-eval' data:; 
Referrer-Policy: no-referrer { "data": { "attributes": { "name": "metallica", 
"subFolders": [], "target": { "type": "winFolder", "winFolder": { "path": "C:\\temp" } }, 
"uploadQuota": null }, "id": "%2Fusr%2Ftest_user_sql%2Fmetallica%2F", "links": { 
"self": "/admin/v2/sites/7c2d15e3-e151-4029-8aa2-d4475296ba1c/filesystem/folders/
%252Fusr%252Ftest_user_sql%252Fmetallica%252F" }, "relationships": { "inheritedPermissions": 
{ "meta": { "name": "inherited permissions" } }, "permissions": { "links": { "related": 
"/admin/v2/sites/7c2d15e3-e151-4029-8aa2-d4475296ba1c/filesystem/folders/%252Fusr
%252Ftest_user_sql%252Fmetallica%252F/permissions" } } }, "type": "folder" } }

PATCH PowerShell Sample

Copy
#
# renaming the virtual folder name
#
$update = 
'{
  "data": {
    "attributes": {
      "name": "metallica",
      "subFolders": [],
      "target": {
        "type": "winFolder",
        "winFolder": {
          "path": "C:\\temp"
        }
      },
      "uploadQuota": null
    },
    "id": "%2Fusr%2Ftest_user_sql%2Fmetallica%2F",
    "type": "folder"
  }
}'
$update = $update | ConvertFrom-Json
$update = $update | ConvertTo-Json -Depth 20
# update filesystem folders
Write-Output "patch filesystem folders"
Write-Output "-----"
$folderList = Invoke-RestMethod -Uri "$baseURL/v2/sites/$siteID/filesystem/folders/
%2fusr%2fdyelacic%2fmetallica%2f" -Method 'PATCH' -Headers $authHeader -Body $update
Write-Output $folderList | ConvertTo-Json
foreach ($user in $folderList.data)
{
    Write-Output ("User $($user.id): $($user.attributes.loginName)")
}

Method & URL

DELETE https://[server URL]:[port]/admin/v2/sites/{siteId}/filesystem/folders/{folderid}

DELETE Body Sample

Copy
###
DELETE https://{{host}}/admin/v2/sites/{{Siteid}}/filesystem/folders/%2Fusr%2FFranklin%2F HTTP/1.1
Authorization: EFTAdminAuthToken {{AuthToken}}
###

DELETE Response Body Sample

Copy
HTTP/1.1 204 No Content Date: Thu, 10 Feb 2022 14:49:46 GMT Content-Length: 0 
Cache-Control: no-cache, no-store, must-revalidate Expires: -1 
X-Content-Type-Options: nosniff X-XSS-Protection: 1; mode=block 
Content-Security-Policy: default-src 'self' 'unsafe-inline' 'unsafe-eval' data:; 
Referrer-Policy: no-referrer

DELETE PowerShell Sample

Copy
Write-Output "delete filesystem folders"
Write-Output "-----"
$folderList = Invoke-RestMethod -Uri "$baseURL/v2/sites/$siteID/filesystem/folders/
%2Fusr%2Fdyelacic%2F" -Method 'DELETE' -Headers $authHeader
Write-Output $folderList | ConvertTo-Json
foreach ($user in $folderList.data)
{
    Write-Output ("User $($user.id): $($user.attributes.loginName)")
}