Serve files from PowerShell Universal
Published folders allow you to share a local folder through your Universal website. Any file within the published folder will be accessible via a web request. This can be helpful for storing images or other files that you may want to provide via your Universal Dashboard.
Dashboard / Published Folderspage, you can click Add Published Folder. You will need to enter the local path as well as the request path. The local path is the folder that you wish to publish. The request path is the path that the end user will request to download the files from the folder.
You can choose to turn on authentication and authorization for the folder.
Once the folder has been published, it will be listed in the published folders table.
You can now download files that are found in the published folder by visit the request path. In the example above, I could visit the following URL to download the test.txt file.
You'll notice that unauthenticated requests will not be able to access the file.
PS C:\src\universal\src> invoke-webrequest http://localhost:5000/src/test.txt
Invoke-WebRequest: Response status code does not indicate success: 401 (Unauthorized).
Default documents allow you to load files when a user specifies the folder and not the document within a folder. This can be handy when a user visits
/docsbut does not specify
/docs/index.html. Instead of returning a 404, you can return the
index.htmlwhen the user specifies
To configure default documents, set the
New-PSUPublishedFolder -Path C:\website -RequestPath /docs -DefaultDocument @("index.hml")
By default, when PSU accesses files when serving them to users, it will do so as the service account the process is running as. If you wish to access files as the user that is downloading the file, you can turn on impersonation.
New-PSUPublishedFolder -Path C:\website -RequestPath /docs -DefaultDocument @("index.hml") -Impersonation