|
3 | 3 | <h2>Home</h2>
|
4 | 4 |
|
5 | 5 | @(Html.DevExtreme().FileManager()
|
6 |
| - .ID("file-manager") |
7 |
| - .FileSystemProvider(provider => provider.Custom() |
8 |
| - .GetItems("getItems") |
9 |
| - .CreateDirectory("createDirectory") |
10 |
| - .RenameItem("renameItem") |
11 |
| - .DeleteItem("deleteItem") |
12 |
| - .CopyItem("copyItem") |
13 |
| - .MoveItem("moveItem") |
14 |
| - .UploadFileChunk("uploadFileChunk") |
15 |
| - .DownloadItems("downloadItems") |
16 |
| - ) |
17 |
| - .Permissions(permissions => |
18 |
| - { |
19 |
| - permissions.Download(true); |
20 |
| - permissions.Create(true); |
21 |
| - permissions.Copy(true); |
22 |
| - permissions.Move(true); |
23 |
| - permissions.Delete(true); |
24 |
| - permissions.Rename(true); |
25 |
| - permissions.Upload(true); |
26 |
| - }) |
27 |
| - .Upload(upload => upload.ChunkSize(600000)) |
28 |
| - .AllowedFileExtensions(new string[0]) |
29 |
| - ) |
| 6 | + .ID("file-manager") |
| 7 | + .FileSystemProvider(provider => provider.Custom() |
| 8 | + .GetItems("getItems") |
| 9 | + .CreateDirectory("createDirectory") |
| 10 | + .RenameItem("renameItem") |
| 11 | + .DeleteItem("deleteItem") |
| 12 | + .CopyItem("copyItem") |
| 13 | + .MoveItem("moveItem") |
| 14 | + .UploadFileChunk("uploadFileChunk") |
| 15 | + .DownloadItems("downloadItems") |
| 16 | + .AbortFileUpload("abortFileUpload") |
| 17 | + ) |
| 18 | + .Permissions(permissions => |
| 19 | + { |
| 20 | + permissions.Download(true); |
| 21 | + permissions.Create(true); |
| 22 | + permissions.Copy(true); |
| 23 | + permissions.Move(true); |
| 24 | + permissions.Delete(true); |
| 25 | + permissions.Rename(true); |
| 26 | + permissions.Upload(true); |
| 27 | + }) |
| 28 | + .Upload(upload => upload.ChunkSize(5242880)) |
| 29 | + .AllowedFileExtensions(new string[0]) |
| 30 | +) |
| 31 | + |
30 | 32 | <div id="request-panel"></div>
|
31 | 33 | <script src="~/js/amazon.gateway.js"></script>
|
32 | 34 | <script src="~/js/amazon.filesystem.js"></script>
|
33 | 35 | <script type="text/javascript">
|
34 | 36 |
|
35 |
| - baseUrl = `https://localhost:52366/api/AmazonS3`; |
36 |
| - amazon = new AmazonFileSystem(baseUrl, onRequestExecuted); |
| 37 | +baseUrl = `https://localhost:52366/api/AmazonS3`; |
| 38 | +amazon = new AmazonFileSystem(baseUrl, onRequestExecuted); |
| 39 | +
|
| 40 | +async function getItems(item) { |
| 41 | + try { |
| 42 | + return amazon.getItems(item.key); |
| 43 | + } catch (error) { |
| 44 | + throw new DevExpress.fileManagement.FileSystemError(32767, item, error.message); |
| 45 | + } |
| 46 | +} |
37 | 47 |
|
38 |
| -function getItems(item) { |
39 |
| - return amazon.getItems(item.key); |
| 48 | +async function createDirectory(parentDirectory, name) { |
| 49 | + try { |
| 50 | + await amazon.createDirectory(parentDirectory.key, name); |
| 51 | + } catch (error) { |
| 52 | + throw new DevExpress.fileManagement.FileSystemError(32767, item, error.message); |
| 53 | + } |
40 | 54 | }
|
41 | 55 |
|
42 |
| -function createDirectory(parentDirectory, name) { |
43 |
| - return amazon.createDirectory(parentDirectory.key, name); |
| 56 | +async function renameItem(item, name) { |
| 57 | + try { |
| 58 | + await amazon.renameItem(item.key, item.parentPath, name); |
| 59 | + } catch (error) { |
| 60 | + throw new DevExpress.fileManagement.FileSystemError(32767, item, error.message); |
| 61 | + } |
44 | 62 | }
|
45 | 63 |
|
46 |
| -function renameItem(item, name) { |
47 |
| - return amazon.renameItem(item.key, item.parentPath, name); |
| 64 | +async function deleteItem(item) { |
| 65 | + try { |
| 66 | + await amazon.deleteItem(item.key); |
| 67 | + } catch (error) { |
| 68 | + throw new DevExpress.fileManagement.FileSystemError(32767, item, error.message); |
| 69 | + } |
48 | 70 | }
|
49 | 71 |
|
50 |
| -function deleteItem(item) { |
51 |
| - return amazon.deleteItem(item.key); |
| 72 | +async function copyItem(item, destinationDirectory) { |
| 73 | + try { |
| 74 | + await amazon.copyItem(item, destinationDirectory); |
| 75 | + } catch (error) { |
| 76 | + throw new DevExpress.fileManagement.FileSystemError(32767, item, error.message); |
| 77 | + } |
52 | 78 | }
|
53 | 79 |
|
54 |
| -function copyItem(item, destinationDirectory) { |
55 |
| - return amazon.copyItem(item, destinationDirectory); |
| 80 | +async function moveItem(item, destinationDirectory) { |
| 81 | + try { |
| 82 | + await amazon.moveItem(item, destinationDirectory); |
| 83 | + } catch (error) { |
| 84 | + throw new DevExpress.fileManagement.FileSystemError(32767, item, error.message); |
| 85 | + } |
56 | 86 | }
|
57 | 87 |
|
58 |
| -function moveItem(item, destinationDirectory) { |
59 |
| - return amazon.moveItem(item, destinationDirectory); |
| 88 | +async function abortFileUpload(fileData, uploadInfo, destinationDirectory) { |
| 89 | + try { |
| 90 | + await amazon.abortFileUpload(fileData, uploadInfo, destinationDirectory); |
| 91 | + } catch (error) { |
| 92 | + throw new Error(error.message); |
| 93 | + } |
60 | 94 | }
|
61 | 95 |
|
62 | 96 | async function uploadFileChunk(fileData, uploadInfo, destinationDirectory) {
|
63 |
| - await amazon.uploadFileChunk(fileData, uploadInfo, destinationDirectory); |
| 97 | + try { |
| 98 | + await amazon.uploadFileChunk(fileData, uploadInfo, destinationDirectory); |
| 99 | + } catch (error) { |
| 100 | + throw new Error(error.message); |
| 101 | + } |
64 | 102 | }
|
65 | 103 |
|
66 |
| -function downloadItems(items) { |
67 |
| - return amazon.downloadItems(items); |
| 104 | +async function downloadItems(items) { |
| 105 | + try { |
| 106 | + await amazon.downloadItems(items); |
| 107 | + } catch (error) { |
| 108 | + throw new Error(error.message); |
| 109 | + } |
68 | 110 | }
|
69 | 111 |
|
70 |
| - function onRequestExecuted(e) { |
71 |
| - $("<div>").addClass("request-info").append( |
72 |
| - createParameterInfoDiv("Method:", e.method), |
73 |
| - createParameterInfoDiv("Url path:", e.urlPath), |
74 |
| - createParameterInfoDiv("Query string:", e.queryString), |
75 |
| - $("<br>") |
76 |
| - ) |
77 |
| - .prependTo("#request-panel"); |
78 |
| - } |
79 |
| -
|
80 |
| - function createParameterInfoDiv(name, value) { |
81 |
| - return $("<div>").addClass("parameter-info").append( |
82 |
| - $("<div>").addClass("parameter-name").text(name), |
83 |
| - $("<div>").addClass("parameter-value dx-theme-accent-as-text-color").text(value).attr("title", value) |
84 |
| - ); |
85 |
| - } |
| 112 | +function onRequestExecuted(e) { |
| 113 | + $("<div>").addClass("request-info").append( |
| 114 | + createParameterInfoDiv("Method:", e.method), |
| 115 | + createParameterInfoDiv("Url path:", e.urlPath), |
| 116 | + createParameterInfoDiv("Query string:", e.queryString), |
| 117 | + $("<br>") |
| 118 | + ) |
| 119 | + .prependTo("#request-panel"); |
| 120 | +} |
| 121 | +
|
| 122 | +function createParameterInfoDiv(name, value) { |
| 123 | + return $("<div>").addClass("parameter-info").append( |
| 124 | + $("<div>").addClass("parameter-name").text(name), |
| 125 | + $("<div>").addClass("parameter-value dx-theme-accent-as-text-color").text(value).attr("title", value) |
| 126 | + ); |
| 127 | +} |
86 | 128 |
|
87 | 129 | </script>
|
0 commit comments