I want to develop a REST server file manager with resume capability using .Net Core WebApi. Currently I have:
GET api/FileManager/path/to/directory: returns JSON with the content of the directory (subdirectories and files)
GET api/FileManager/path/to/file.txt: download the file with resume capability (e.g. Range: Bytes=0-1023)
HEAD api/FileManager/path/to/file/or/directory: returns empty 200 if the file or directory exists, if not returns empty 404
PUT api/FileManager/path/to/file.txt (with the file content in the body): upload a file
DELETE: delete a file or directory if it exists
Now I am struggling with other functions such as rename or compress
My questions:
How can I implement "rename" (which includes the Move case) a file or directory function with REST? Is it PUT or PATCH? I am thinking that the input would have to contain the new full name of the file/directory
How can I implement "compress"? The client will send a JSON body containing the files and directories to be added to the ZIP file. None of the VERBS sounds suitable, for example, if I use POST, will not be able to differentiate with the file upload
Am I missing anything in implementing file download with resume? I heard about bytes=0-0,-1 but have no idea about it.
Related
I am trying to get a list of datasources that a Powerbi file is using. I seen solutions online where I can use the ReportingService module to get a list but this only works when the PowerBI report is published online. Is there a solution that would work for a local file?
Here is the situation.
A user gives me a Powerbi file. In order for me to get a list of datasources, I have to go in manually and to take a look at sources manually. Ideally, I would like to use Powershell to get this list.
There isn't an API that can access the desktop application. You would have to brute force it.
The PBX file is basically a Zip file which then contains separate files with JSON information. You would have to follow the following steps:
Use Expand-Archive to get the files out of the PBX (Not sure if you will need to change the file extension first).
Read the "Connections" file (Which is Json). It will have the various connection strings used by the model.
You can do this manually by changing the file extension to Zip and opening the Zip file directly, and looking at the connections file in notepad.
Although Microsoft official documentation quite rich, I can't find any details of how exactly I should upload the large file to a shared folder (not to my drive).
I've followed the docs:
POST /drives/{driveId}/items/{itemId}/createUploadSession
{"Item":{"#microsoft.graph.conflictBehavior":"replace","name":"20200310-155252-700.jpg"}}
Where the itemId is the folder id I am trying to upload that file to.
However, it returns 400 Bad Request error Name from path does not match name from body message.
But the request path provided in docs doesn't expect passing the file name at all!
I kind of suspecting that the itemId should be an existing item on the drive (not even inside the folder), rather than a folder id to create that file in, but a) I am not sure about that and b) how is it possible to have an empty file without any content before having that upload complete (again, if I am right about b)).
Am I at least following a right direction? Thanks!
This is because poorly updated OneDrive Api official documentation Microsoft has.
A correct url must be as follows:
$"{baseUrl}/drives/{drive}/items/{itemId}:/{fileName}:/createUploadSession"
I want to compress a file before uploading it on server in sapui5 (image(png/jpeg/jpg)/pdf/). I want to upload a large files but i want to compress that file before uploading. Please suggest me solution ?
I think you will not be able to do it with instant upload. Instead, you should obtain the file from the change event of the file uploader (check out the change event, it has a files parameter).
You can then use that file object together with the zip.js library to create an in-memory zip and save it into e.g. a Blob. Afterwards you simply send the blob into a POST request (e.g. look at How can javascript upload a blob?). Maybe you should also provide some file-uploading specific headers (like the Slug).
I am trying to upload with Http request a file (not a blob) in Azure File service.
I have successfully uploaded a blob with Http request. I am using the same Authentication method (SharedKey). Inside documentation I found that I had to first create and then write a file.
The Create File operation creates a new file or replaces a file. Note
that calling Create File only initializes the file. To add content to
a file, call the Put Range operation
Is it correct. Does anyone knows any other option. It seems a bit wrong to me. Does anyone has an example in .net?
(I even tried this workflow but i got a 400 error)
I guess you were expecting the Create File API works like Put Block Blob which uploads the content in the request body. Actually Create File is similar to Put Page/Append Blob. It requires you to initialize the resource first and then update the content. You can refer to the sample that #Michael pointed in the comment.
I am using filepicker.io and specially computer as main service.
I would like to get the original file path of a file uploaded through the API.
For example, if I upload a file located at /my/path/in/my/computer/file.zip, I will get in the FPFile object the filepicker.io URL but not the original file path.
Is there a way to get it ?
PS: I have tried to retrieve the stat of the file too without success.
Due to browser security limitations, the real local path of the file is never exposed to the javascript application. For more information, see http://davidwalsh.name/fakepath