diff --git a/WebCms/Backload/Config/Web.Backload.xsd b/WebCms/Backload/Config/Web.Backload.xsd index 46e93e9..4b2e956 100644 --- a/WebCms/Backload/Config/Web.Backload.xsd +++ b/WebCms/Backload/Config/Web.Backload.xsd @@ -10,38 +10,38 @@ - Sets the attributes for filesystem storage + Sets the attributes for file-system storage Root upload folder. If the value starts with '~/' (e.g. ~/files) the path is relative to the web application root, otherwise set an absolute local path (e.g. d:\files) and also set a the virtual path name in the "virtualDirectory" attribute [Default: "~/Files"] - Name of virtual directory in your IIS application to an external storage location (unc or full file system path). If filesRoot is relative to the web application root (starts with '~/', see filesRoot), you do not need to set this value. If filesRoot is an absolute path, you usually set a virtual path in IIS to this external location. In this case, the virtualDirectory attribute must be set to the name of the virtual path and filesRoot to the external path. Example: If the virtual path is z:\files and the name is "files", set filesRoot="z:\files" and virtualDirectory="/files" [Default: "/"] - Subfolder within the filesRoot. Set it to objectsRoot="" if you do not need a subfolder [Default: ""] - Root of a folder where Backload stores a copy of an uploaded file, if set to a none empty string. If the value is empty ("") not copies are stored. If the value starts with '~/' (e.g. ~/copies) the path is relative to the web root. if the value not starts with '~/' and it isn't an absolute local path, the value will be treated as a subfolder to filesRoot ('copies' -> ~/files/copies). Otherwise set an absolute local path (e.g. d:/backup) [Default: ""] - Temporäry folder prefix if file chunks are uploaded into the upload folder before they are merged [Default: "$$"]. - Subfolder for supporting files (previews, mappings, etc). If "auxFilesFolder" is not empty (e.g. auxFilesFolder="_aux") supporting files will be stored in an external path ([filesRoot]\[auxFilesFolder]\). In this case the main upload directories only contain the uploaded files. [Default: ""]. + Name of virtual directory in your IIS application to an external storage location (UNC or full file system path). If filesRoot is relative to the web application root (starts with '~/', see filesRoot), you do not need to set this value. If filesRoot is an absolute path, you usually set a virtual path in IIS to this external location. In this case, the virtualDirectory attribute must be set to the name of the virtual path and filesRoot to the external path. Example: If the virtual path is z:\files and the name is "files", set filesRoot="z:\files" and virtualDirectory="/files" [Default: "/"] + Sub-folder within the filesRoot. Set it to objectsRoot="" if you do not need a sub-folder [Default: ""] + Root of a folder where Backload stores a copy of an uploaded file, if set to a none empty string. If the value is empty ("") not copies are stored. If the value starts with '~/' (e.g. ~/copies) the path is relative to the web root. if the value not starts with '~/' and it isn't an absolute local path, the value will be treated as a sub-folder to filesRoot ('copies' -> ~/files/copies). Otherwise set an absolute local path (e.g. d:/backup) [Default: ""] + Temporary folder prefix if file chunks are uploaded into the upload folder before they are merged [Default: "$$"]. + Sub-folder for supporting files (previews, mappings, etc). If "auxFilesFolder" is not empty (e.g. auxFilesFolder="_aux") supporting files will be stored in an external path ([filesRoot]\[auxFilesFolder]\). In this case the main upload directories only contain the uploaded files. [Default: ""]. - Provides setting for database configuration. Supports codeless storage (no application code needed), Entity Framework, Sql FileStreams, Sql FileTables and external file storage (filesystem). + Provides setting for database configuration. Supports code-less storage (no application code needed), Entity Framework, SQL FileStreams, SQL FileTables and external file storage (file-system). Name of the database connection (see Web.config). Can also be a connection string. [Default: "FilesContext"] Name of the underlying database table [Default: "Files"] - Name of the SqlFileTable if a SqlFileTable is running on Sql Server. In a SqlFileTable, files will be stored outside of the database file in a filesystem directory, but managed by the database engine. This allows to store very large files. In contrast to SqlFileStreams, SqlFileTable files can be accessed, created and deleted directly within the file system as normal files. This allows us for example to copy a file with the explorer to the FileTable's directory in the file system where Sql Server catches the file and manages it. When you create a virtual path in IIS to the FileTable directory in the filesystem, A client can download the files in the SqlFileTable directly from the browser. FileTables (SQL Server). [Default: "FileTable"]. + Name of the SqlFileTable if a SqlFileTable is running on SQL Server. In a SqlFileTable, files will be stored outside of the database file in a file-system directory, but managed by the database engine. This allows to store very large files. In contrast to SqlFileStreams, SqlFileTable files can be accessed, created and deleted directly within the file system as normal files. This allows us for example to copy a file with the explorer to the FileTable's directory in the file system where SQL Server catches the file and manages it. When you create a virtual path in IIS to the FileTable directory in the file-system, A client can download the files in the SqlFileTable directly from the browser. FileTables (SQL Server). [Default: "FileTable"]. Defines if files are stored within the database file or as SqlFiieStream. SqlFIleStreams are stored outside of the database file as blob within the file system, but they are managed by the database engine. When using SqlFileStreams, SQL Server and the database must enable the SqlFileStream feature. More info: FILESTREAM (SQL Server). [Default: "Internal"] Files will be stored within the database (default). - Files will be stored as SqlFileStream outside of the database file in a filesystem directory, but managed by the database engine. This allows us to store very large files. More info: FILESTREAM (SQL Server). Unlike SqlFileTable, files (blobs) cannot be accessed directly on the file system. - Like SqlFileStreams, files will be stored in a SqlFileTable outside of the database file in a filesystem directory, but managed by the database engine. This allows us to store very large files. More info: FileTables (SQL Server). Unlike SqlFileStreams FileTable files can be accessed, created and deleted within the file system as normal file. This allows us for example to copy a file with the explorer to the FileTable's directory in the file system where Sql Server catches the file and manages it. You can also enable a client to directory download the file if you create a virtual path from IIS to the FileTable directory. - Files will be stored on the filesystem. A virtual path in the database points to the file. + Files will be stored as SqlFileStream outside of the database file in a file-system directory, but managed by the database engine. This allows us to store very large files. More info: FILESTREAM (SQL Server). Unlike SqlFileTable, files (blobs) cannot be accessed directly on the file system. + Like SqlFileStreams, files will be stored in a SqlFileTable outside of the database file in a file-system directory, but managed by the database engine. This allows us to store very large files. More info: FileTables (SQL Server). Unlike SqlFileStreams FileTable files can be accessed, created and deleted within the file system as normal file. This allows us for example to copy a file with the explorer to the FileTable's directory in the file system where SQL Server catches the file and manages it. You can also enable a client to directory download the file if you create a virtual path from IIS to the FileTable directory. + Files will be stored on the file-system. A virtual path in the database points to the file. - Storage mode "SqlFileTable" or "FileSystem" only. This setting is only needed if direct download of files is enabled in the configuration with the setting filesUrlPattern="{url}" (default: {backload}). Note: Direct download of files is only available in the storage modes "SqlFileTable" and "FileSystem", because in these modes files are stored as regular files on the file system. As in standard filesystem storage, VirtualDirectory needs to be set as the name of a virtual directory in IIS or an absolute url //if the file system to download files is outside the web application (e.g. UNC shares). VirtualDirectory represents the name of virtual path in your IIS application to an external storage location. If filesRoot is relative to the web application root (starts with '~/', see filesRoot), you do not need to set this value. If filesRoot is an absolute path, you usually set a virtual path in IIS to this external location. In this case, the virtualDirectory attribute must be set to the name of the virtual path and filesRoot to the absolute path. Example: If the virtual path is z:\files and the name is "files", set filesRoot="z:\files" and virtualDirectory="/files" [Default: "/"] - Root path of the file directory when using external file storage (storageMode: SqlFileTable or FileSystem) (SqlFileTable example: "\\Server\SQLEXPRESS\FILES\Uploads\" where "FILES" is the database and "Uploads" is the name of the SqlFileTable.) (FilePath example: z:\Uploads). NOTE: If rootPath is not configured in storageMode "SqlFileTable", rootPath will be automatically retrieved from Sql Server. [Default: "~/Files"] - If set to a none empty string, this setting is used to store file chunks, before the full uploaded file will be stored into the database. If you use chunked file uploads, it is recommend to store the chunks in a temporary directory to get best performance. (Examples: "~/Files/Temp/" (app relative), "z:\dbstorage\temp\" (absolute), "\\server\dbstorage\temp\" (unc)) [Default: ""] + Storage mode "SqlFileTable" or "FileSystem" only. This setting is only needed if direct download of files is enabled in the configuration with the setting filesUrlPattern="{url}" (default: {backload}). Note: Direct download of files is only available in the storage modes "SqlFileTable" and "FileSystem", because in these modes files are stored as regular files on the file system. As in standard file-system storage, VirtualDirectory needs to be set as the name of a virtual directory in IIS or an absolute URL if the file system to download files is outside the web application (e.g. UNC shares). VirtualDirectory represents the name of virtual path in your IIS application to an external storage location. If filesRoot is relative to the web application root (starts with '~/', see filesRoot), you do not need to set this value. If filesRoot is an absolute path, you usually set a virtual path in IIS to this external location. In this case, the virtualDirectory attribute must be set to the name of the virtual path and filesRoot to the absolute path. Example: If the virtual path is z:\files and the name is "files", set filesRoot="z:\files" and virtualDirectory="/files" [Default: "/"] + Root path of the file directory when using external file storage (storageMode: SqlFileTable or FileSystem) (SqlFileTable example: "\\Server\SQLEXPRESS\FILES\Uploads\" where "FILES" is the database and "Uploads" is the name of the SqlFileTable.) (FilePath example: z:\Uploads). NOTE: If rootPath is not configured in storageMode "SqlFileTable", rootPath will be automatically retrieved from SQL Server. [Default: "~/Files"] + If set to a none empty string, this setting is used to store file chunks, before the full uploaded file will be stored into the database. If you use chunked file uploads, it is recommend to store the chunks in a temporary directory to get best performance. (Examples: "~/Files/Temp/" (app relative), "z:\dbstorage\temp\" (absolute), "\\server\dbstorage\temp\" (UNC)) [Default: ""] If the data model has different column names than the defaults (e.g. FileId instead of the default Id), a column mapping for column names can be set. Example: columnMapping="{Id=FileId,Name=FileName,Original=OriginalName}". See also the database demo package. [Default: ""] Name of the plugin file, e.g. extension="Backload.Plugin.Database.dll". If this is an empty string the extension name will be automatically set to: "Backload.Plugin.Database.dll [Default: "Backload.Plugin.Database.dll"] @@ -58,12 +58,12 @@ Root upload folder. If the value starts with '~/' (e.g. ~/files) the path is relative to the web application root, otherwise set an absolute local path (e.g. d:\files) and also set a the virtual path name in the "virtualDirectory" attribute [Default: "~/Files"] - Name of virtual path in your IIS application to an external storage location (unc or full file system path). If filesRoot is relative to the web application root (starts with '~/', see filesRoot), you do not need to set this value. If filesRoot is an absolute path, you usually set a virtual path in IIS to this external location. In this case, the virtualDirectory attribute must be set to the name of the virtual path and filesRoot to the external path. Example: If the virtual path is z:\files and the name is "files", set filesRoot="z:\files" and virtualDirectory="/files" [Default: "/"] - Special subfolder within the filesRoot to store user related files like photos etc. Set it to usersRoot="" if you do not need this subfolder [Default: ""] - Subfolder within the filesRoot. Set it to objectsRoot="" if you do not need a subfolder [Default: ""] - Root of a folder where Backload stores a copy of an uploaded file, if set to a none empty string. If the value is empty ("") not copies are stored. If the value starts with '~/' (e.g. ~/copies) the path is relative to the web root. If the value not starts with '~/' and it isn't an absolute local path, the value will be treated as a subfolder to filesRoot ('copies' -> ~/files/copies). Otherwise set an absolute local path (e.g. d:/backup) [Default: ""] + Name of virtual path in your IIS application to an external storage location (UNC or full file system path). If filesRoot is relative to the web application root (starts with '~/', see filesRoot), you do not need to set this value. If filesRoot is an absolute path, you usually set a virtual path in IIS to this external location. In this case, the virtualDirectory attribute must be set to the name of the virtual path and filesRoot to the external path. Example: If the virtual path is z:\files and the name is "files", set filesRoot="z:\files" and virtualDirectory="/files" [Default: "/"] + Special sub-folder within the filesRoot to store user related files like photos etc. Set it to usersRoot="" if you do not need this sub-folder [Default: ""] + Sub-folder within the filesRoot. Set it to objectsRoot="" if you do not need a sub-folder [Default: ""] + Root of a folder where Backload stores a copy of an uploaded file, if set to a none empty string. If the value is empty ("") not copies are stored. If the value starts with '~/' (e.g. ~/copies) the path is relative to the web root. If the value not starts with '~/' and it isn't an absolute local path, the value will be treated as a sub-folder to filesRoot ('copies' -> ~/files/copies). Otherwise set an absolute local path (e.g. d:/backup) [Default: ""] Temporary folder prefix if file chunks are uploaded into the upload folder before they are merged [Default: "$$"]. - Subfolder for supporting files (previews, mappings, etc). If "auxFilesFolder" is not empty (e.g. auxFilesFolder="_aux") supporing files will be stored in an external path ([filesRoot]\[auxFilesFolder]\). In this case the main upload directories only contain the uploaded files. [Default: ""]. + Sub-folder for supporting files (previews, mappings, etc). If "auxFilesFolder" is not empty (e.g. auxFilesFolder="_aux") supporting files will be stored in an external path ([filesRoot]\[auxFilesFolder]\). In this case the main upload directories only contain the uploaded files. [Default: ""]. Name of the plugin file, e.g. extension="Backload.Plugin.AzureFileStorage.dll". If this is an empty string the extension name will be automatically set to: "Backload.Plugin.AzureFileStorage.dll [Default: "Backload.Plugin.AzureFileStorage.dll"] @@ -74,8 +74,9 @@ Azure Storage Service connection string name, usually located in the .cscfg file or Web.config. If this is an empty string, the local storage emulator will be used [Default: "StorageConnectionString"] Name of the files upload container. Example: uploadContainer="files". Must start with a lowercase letter. Automatically created if it doesn't exist [Default: "files"] - Virtual subfolder within the uploadContainer. Set it to objectsRoot="" if you do not need a subfolder [Default: ""] - Virtual subfolder within the uploadContainer. Set it to objectsRoot="" if you do not need a subfolder [Default: ""] + Name of the thumbnail container. Example: previewContainer="previews". Must start with a lowercase letter. Automatically created if it doesn't exist [Default: "previews"] + Virtual sub-folder within the uploadContainer. Set it to objectsRoot="" if you do not need a sub-folder [Default: ""] + Virtual subfolder within the uploadContainer. Set it to objectsRoot="" if you do not need a sub-folder [Default: ""] Sas access type only. Time period (in minutes) before the shared access token expires. [Default: "60"] Public access type to the uploaded files [Default: "token"] @@ -83,20 +84,20 @@ No public access. Anyone with the url can get or list, but not store or delete files. Ad-hoc shared access signature (SAS). Storage access requires a valid access token [Default]. - A shared (stored) access policy will be used. Define a name of the stored policy within the storedPolicyName attribute. Note: Note: Your code is responsable to renew the policy before it expires! + A shared (stored) access policy will be used. Define a name of the stored policy within the storedPolicyName attribute. Note: Note: Your code is responsible to renew the policy before it expires! Sets the container existence checking and auto creation behavior [Default: "auto"] - Container existence is verified on first access, created it if neccessary, after that assumed that the container exists (Default). - Verify container exsistence on every request and try to create it if it not exists. - No checks for container exsistence. The containers (files, previews, [archives]) must be available (pre-created) on a request. + Container existence is verified on first access, created it if necessary, after that assumed that the container exists (Default). + Verify container existence on every request and try to create it if it not exists. + No checks for container existence. The containers (files, previews, [archives]) must be available (pre-created) on a request. - If accessType is set to "storedPolicy", this is the name of the shared access policy. Note: Your code is responsable to renew the policy before it expires! [Default: "backload"] + If accessType is set to "storedPolicy", this is the name of the shared access policy. Note: Your code is responsible to renew the policy before it expires! [Default: "backload"] Name of the plugin file, e.g. extension="Backload.Plugin.AzureBlobStorage.dll". If this is an empty string the extension name will be automatically set to: "Backload.Plugin.AzureBlobStorage.dll [Default: "Backload.Plugin.AzureBlobStorage.dll"] @@ -108,16 +109,16 @@ Azure Storage Service connection string name, usually located in the .cscfg file or Web.config. If this is an empty string, the local storage emulator will be used [Default: "StorageConnectionString"] Name of the files upload container. Example: uploadContainer="files". Must start with a lowercase letter. Automatically created if it doesn't exist [Default: "files"] Azure Storage Service connection string name, usually located in the .cscfg file or Web.config. If this is an empty string, the local storage emulator will be used [Default: "StorageConnectionString"] - Virtual subfolder within the uploadContainer. Set it to objectsRoot="" if you do not need a subfolder [Default: ""] + Virtual sub-folder within the uploadContainer. Set it to objectsRoot="" if you do not need a sub-folder [Default: ""] Sas access type only. Time period (in minutes) before the shared access token expires. [Default: "60"] Sas access type only. Time period (in minutes) before the shared access token expires. [Default: "60"] Root upload folder. [Default: "Files"] - Subfolder within the filesRoot. Set it to objectsRoot="" if you do not need a subfolder [Default: ""] + Subfolder within the filesRoot. Set it to objectsRoot="" if you do not need a sub-folder [Default: ""] Public access type to the uploaded files [Default: "token"] - All files are stored on a central Google Drive accout in the same upload folder. All users have access to all uploaded files. - All files are stored on a central Google Drive accout into an user individual folder. User only has access to his uploaded files. + All files are stored on a central Google Drive account in the same upload folder. All users have access to all uploaded files. + All files are stored on a central Google Drive account into an user individual folder. User only has access to his uploaded files. Files are stored in the users Google Drive account. The user must have a Google Drive account. @@ -139,7 +140,7 @@ - If the bundeling feature is used (@Render.Scripts(), @Render.Styles()), set the appropriate files folder. TIP: Don't forgat to register the bundeling feature in the global.asax. See example project. + If the bundling feature is used (@Render.Scripts(), @Render.Styles()), set the appropriate files folder. TIP: Don't forget to register the bundling feature in the global.asax. See example project. Scripts folder [Default: "~/Backload/Client"] @@ -180,6 +181,7 @@ + Enables/disables faster image processing for non-canvas transformations (e.g. ratio) or for images that are bigger than canvas. [Default: "true"] Optional background image if images are placed or fit onto a canvas. Example: background="~/Backload/Imaging/background.png". [Default: "" (no background image)]. Optional watermark image if images are uploaded. Example: watermark="~/Backload/Imaging/watermark.png". [Default: "" (no watermark)]. Vertical position of a watermark to be placed on an image[Default: "center"] @@ -199,12 +201,13 @@ Setting for the handling of thumbnails. - If set to "true" (default), preview images are stored physically. If this attribute is set to false and you request preview images (e.g. in a plugin ui) thumbnails have to be created on every request. If you usually use preview images it is recommed to set this attribute to "true". [Default: "true"] - Location of the thumbnail subfolder within the folder where the main file is stored (thumbnails only). Set to an empty string (path="") to avoid physical storage. [Default: "_thumbs"] + If set to "true" (default), preview images are stored physically. If this attribute is set to false and you request preview images (e.g. in a plugin UI) thumbnails have to be created on every request. If you usually use preview images it is recommended to set this attribute to "true". [Default: "true"] + Location of the thumbnail sub-folder within the folder where the main file is stored (thumbnails only). Set to an empty string (path="") to avoid physical storage. [Default: "_thumbs"] Width or max width (depends on resizeMode) of the resulting thumbnail [Range: 16-10000, Default: "80"] Height or max height (depends on resizeMode) of the resulting thumbnail [Range: 16-10000, Default: "60"] Resolution of the resulting thumbnail (dots per inch) If set to -1 resolution of the original image is used. If set to -1 resolution of the original image is used. [Range: 72-2400, Default: "96"] Background color of the canvas. Only used when resize mode is fit and the image ratio of the source and target image differ. You can also use argb (rgb with alpha channel, e.g. background: #00ffffff (transparent), #80ffffff (white, 50% transparency), #ffffffff (white, opaque)) [Default: #ffffff] + Enables/disables faster image processing for none canvas transformations (e.g. ratio) or for images that are bigger than canvas. [Default: "true"] Sets the resize mode if the thumbnail should be resized into a max width or height of a thumbnail canvas [Default: "place"] @@ -213,11 +216,11 @@ Same as ratio, but smaller images are not upscaled. If the source image is bigger than the canvas same as fit. If it is smaller than the canvas, it will be placed in the center of the canvas without resizing Fit into canvas, preserves ratio, centered on canvas - Placed on canvas, cropped if neccessary with center of the original image + Placed on canvas, cropped if necessary with center of the original image - Thumnail images must all have the same image type in order the upload handler can find and return the correct thumbnail path [Default: "image/png"] + Thumbnail images must all have the same image type in order the upload handler can find and return the correct thumbnail path [Default: "image/png"] .png (protable network graphics) @@ -233,13 +236,13 @@ - Enables/disables and configures CROSS-ORIGIN RESOURCE SHARING (CORS). CORS is used in environments, where file requests (e.g. GET) come from diffenrent domains (e.g. client: http://www.yourwebsite.com, Backload: http://fileservice.com/Backload/Filehandler ). + Enables/disables and configures CROSS-ORIGIN RESOURCE SHARING (CORS). CORS is used in environments, where file requests (e.g. GET) come from different domains (e.g. client: http://www.yourwebsite.com, Backload: http://fileservice.com/Backload/Filehandler ). - To enable cors requests set enable to true [Default=°false°] - Comma-separated list of allowed domains for client side requests or "*" to allow all client side cors requests. Example: allowedOrigin="http://www.myservice.com". [Default="*"] - Comma-separated list of allowed http methods. [Default="GET,POST,DELETE"] + To enable CORS requests set enable to true [Default="false"] + Comma-separated list of allowed domains for client side requests or "*" to allow all client side CORS requests. Example: allowedOrigin="http://www.myservice.com". [Default="*"] + Comma-separated list of allowed HTTP methods. [Default="GET,POST,DELETE"] Comma-separated list of allowed headers. [Default=""] - Validity period of cors permission settings (in seconds) before the client makes a new permissions request. Note: Not all clients use this value [Default="36000"] + Validity period of CORS permission settings (in seconds) before the client makes a new permissions request. Note: Not all clients use this value [Default="36000"] Specifies if a request should send credentials by setting credentials="true" [Default="false"] @@ -247,13 +250,13 @@ A request must always include an none empty objectContext parameter (query or form) to be valid. If you use "objectContext" to store/retirieve user related files, a malicious request could reveal some other users files, if forceObjectContext is false [Default:"false"] True: Anyone is allowed, false: The user must be authenticated [Default: "true"] By default there are no restrictions on who can download files by a GET request. You can change this by adding a comma separated list of roles [Default: "*"] - By default there are no restrictions on who can upload files whithin a POST/PUT request. You can change this by adding a comma separated list of roles [Default: "*"] + By default there are no restrictions on who can upload files within a POST/PUT request. You can change this by adding a comma separated list of roles [Default: "*"] By default there are no restrictions on who can delete files by a DELETE request. You can change this by adding a comma separated list of roles [Default: "*"] - Defines which cache headers are added to the response, and returns a http status 304 (Not Modified), if no files have been uploaded or deleted since the last request. Note: If you manually or by a different application change files, don't use "LastModified=true", because only requests handled by the Backload component will be recognized and a new LastModified date is set. + Defines which cache headers are added to the response, and returns a HTTP status 304 (Not Modified), if no files have been uploaded or deleted since the last request. Note: If you manually or by a different application change files, don't use "LastModified=true", because only requests handled by the Backload component will be recognized and a new LastModified date is set. If true, a "Last-Modified" header is added to the response. In a subsequent request Backload returns a 304 (Not Modified) if no files have been uploaded or deleted since the last request [Default="false"]. @@ -277,7 +280,7 @@ - ContentTypes has two purposes: First, it is used to send an appropriate thumbnail of the file type back to the browser if it is not an image. Second: on uploads you can define a subfolder for a content-type that matches a regular expression, in order to store any content of this type in this folder (e.g. pdf files in a pdf folder) + ContentTypes has two purposes: First, it is used to send an appropriate thumbnail of the file type back to the browser if it is not an image. Second: on uploads you can define a sub-folder for a content-type that matches a regular expression, in order to store any content of this type in this folder (e.g. PDF files in a "pdf" folder) @@ -294,13 +297,13 @@ - New contentType entry (MS Office, OpenOffice, PDF and text file are included by default. No need to inlude these anymore): + New contentType entry (MS Office, OpenOffice, PDF and text file are included by default. No need to include these anymore): An unique name of the entry Complete or fragment (.net RegEx string) of the file extension (e.g. .mp finds .mp3, .mp4, etc). Leave it blank, to skip this test. Complete or fragment (.net RegEx string) of the content-type (e.g. mpeg or application/pdf). Leave it blank, to skip this test. Content-types matches are preferred over extension matches. File name of the thumbnail image within the content-types thumbnail folder. Special handling of Images: Leave it blank, to send a preview of the uploaded image back, or set a thumbnail if you do not want to return a preview. - Subfolder of the object context folder. Has to be set only if files of this content-type should be stored seperatly from other types (e.g. "movies") [Default: ""] + Sub-folder of the object context folder. Has to be set only if files of this content-type should be stored separately from other types (e.g. "movies") [Default: ""] @@ -314,7 +317,7 @@ Provided license data for Pro/Enterprise editions only - Provided licensee value (usually email adress). Obligatory field in the paid editions. + Provided licensee value (usually email address). Obligatory field in the paid editions. Provided license key. Obligatory field in the paid editions. @@ -322,28 +325,28 @@ Name of an external config file [Default: "Web.Backload.config"] In your custom code you can bind a handler to events. If set to true (default), events will be fired [Default: false]. Enables tracing support. Note that tracing consumes some system resources and should only be enabled during development or to find errors in production. [Default: false]. - Max length of a base64 encoded embedded data url. Only required if a url pattern is set to return a base64 string (e.g. thumbsUrlPattern="{base64}") [Default="1000"]. - This attribute sets the pattern of the url for the DELETE request returned back to the client in order to delete the file. You can use the shortcuts described in the config file. If you do not set this attribute, a link to the Backload component is returned by default. If you do not want to return a url, set this to an empty string or use the shortcut {none} (e.g. deleteUrlPattern="{none}" [Default="{backload}"]. + Max length of a base64 encoded embedded data URL. Only required if a URL pattern is set to return a base64 string (e.g. thumbsUrlPattern="{base64}") [Default="1000"]. + This attribute sets the pattern of the URL for the DELETE request returned back to the client in order to delete the file. You can use the shortcuts described in the config file. If you do not set this attribute, a link to the Backload component is returned by default. If you do not want to return a URL, set this to an empty string or use the shortcut {none} (e.g. deleteUrlPattern="{none}" [Default="{backload}"]. By default the internal file upload handler is running and ready to receive incoming files or requests. This enables us zero configuration. If you want to set up your own controller in order to do some business logic, set this to "false". [Default: "true"] - This setting determines the behaviour, if a file in a GET or DELETE request is not found [Default: "auto"] + This setting determines the behavior, if a file in a GET or DELETE request is not found [Default: "auto"] - Returns nothing with an http status 200 (ok). Use this setting, if you do not want to expose internal data. + Returns nothing with an HTTP status 200 (OK). Use this setting, if you do not want to expose internal data. If the output is not file data (e.g. DELETE request), this setting returns an error message. If the output is file data (bytes) it returns a 404 status code [Default]. - Returns a 404 http status code (Not Found). + Returns a 404 HTTP status code (Not Found). - This attribute sets the pattern of the url (File) returned back to the client in order to download the file. You can use the shortcuts described in the config file. If you do not set this attribute, a direct link is returned by default. If you do not want to return a url, set this to an empty string or use the shortcut {none} (e.g. thumbsUrlPattern="{none}" [Default="{url}"]. - On a GET request (return links to uploaded files) only the upload root folder (default filesRoot) is searched for uploaded files. Set to true in order to include subfolders. (Example: A content-type specific subfolder is set to "pdffiles" the search will find files within this subfolder. There are several ways set up subfolders, e.g. uploadContext and objectContext) [Default: "false"] + This attribute sets the pattern of the URL (File) returned back to the client in order to download the file. You can use the shortcuts described in the config file. If you do not set this attribute, a direct link is returned by default. If you do not want to return a URL, set this to an empty string or use the shortcut {none} (e.g. thumbsUrlPattern="{none}" [Default="{url}"]. + On a GET request (return links to uploaded files) only the upload root folder (default filesRoot) is searched for uploaded files. Set to true in order to include sub-folders. (Example: A content-type specific sub-folder is set to "pdffiles" the search will find files within this sub-folder. There are several ways set up sub-folders, e.g. uploadContext and objectContext) [Default: "false"] Only applies if you use the uniqueFileNames option. If set to true, the original file name will be stored (subfolder: _mappings) [Default: "false"] - Defines the default Json output format. You can overwrite the Json output in your code or within the OutgoingResponseCreated event. See examples [Default: "JQueryFileUpload"] + Defines the default JSON output format. You can overwrite the JSON output in your code or within the OutgoingResponseCreated event. See examples [Default: "JQueryFileUpload"] - Generates Json for the jQuery FileUpload plugin from blueimp [Default] - Generates Json for the PlUpload plugin from Moxiecode - Generates Json for the Fine Uploader from Widen Enterprises - Send a (not case sensitive) plugin=[JQueryFileUpload|PlUpload|Custom] querystring with your request (Example: plugin=plupload). Because this is request based you can change the JSON output with every ajax request. + Generates JSON for the jQuery FileUpload plugin from blueimp [Default] + Generates JSON for the PlUpload plugin from Moxiecode + Generates JSON for the Fine Uploader from Widen Enterprises + Send a (not case sensitive) plugin=[JQueryFileUpload|PlUpload|Custom] query-string with your request (Example: plugin=plupload). Because this is request based you can change the JSON output with every AJAX request. Does not generate an output before calling the OutgoingResponseCreated event and you have to generate your own output in this event. @@ -360,20 +363,20 @@ Files may be stored in the file system or in a cloud storage [Default: "Filesystem"] - Saves uploaded files in the file system (or SMB/unc shared folder) [Default] - Saves uploaded files to a database and enables the database configuration element. Supports codeless storage (no application code needed), Entity Framework, Sql FileStreams, Sql FileTables and external file storage (filesystem). + Saves uploaded files in the file system (or SMB/UNC shared folder) [Default] + Saves uploaded files to a database and enables the database configuration element. Supports code-less storage (no application code needed), Entity Framework, SQL FileStreams, SQL FileTables and external file storage (filesystem). Saves uploaded files to a cloud storage. - This attribute sets the pattern of the url (Thumbnail) returned back to the client in order to download the thumbnail. You can use the shortcuts described in the config file. If you do not set this attribute, a direct link is returned by default. If you do not want to return a url, set this to an empty string or use the shortcut {none} (e.g. thumbsUrlPattern="{none}" [Default="{url}"]. - Generates unique file names based on guids [Default: "false"] + This attribute sets the pattern of the URL (Thumbnail) returned back to the client in order to download the thumbnail. You can use the shortcuts described in the config file. If you do not set this attribute, a direct link is returned by default. If you do not want to return a url, set this to an empty string or use the shortcut {none} (e.g. thumbsUrlPattern="{none}" [Default="{url}"]. + Generates unique file names based on GUIDs [Default: "false"] Obsolete. Use "virtualDirectory" in the FileSystem element instead. This attribute will be removed in a future release. - If set to "global" (default) the IWebConfig configuration instance in IFile_config is static, so if a property is changed in code (e.g. event handler), all subsequent requests use the new setting. If set to "request" a property change in code is only available in this single request. Other concurrent or subsequest requests use the original (global) setting. + If set to "global" (default) the IWebConfig configuration instance in IFile_config is static, so if a property is changed in code (e.g. event handler), all subsequent requests use the new setting. If set to "request" a property change in code is only available in this single request. Other concurrent or subsequent requests use the original (global) setting. - IFile_config returns the global settings used in all reuqests - IFile_config returns a request based configuration instance. Note: The GlobalConfig property in IFile_config has a reference to the global configuration. + Configuration settings are global and used in all requests + Request based configuration instance. Note: The GlobalConfig property in IFile_config has a reference to the global configuration. diff --git a/WebCms/Backload/Config/_Defaults/Defaults.txt b/WebCms/Backload/Config/_Defaults/Defaults.txt index 1f8a148..a8e0976 100644 --- a/WebCms/Backload/Config/_Defaults/Defaults.txt +++ b/WebCms/Backload/Config/_Defaults/Defaults.txt @@ -2,26 +2,26 @@ CONFIGURATION SETTINGS AND OPTIONS Insert only the settings you want to change in your Web.Backload.config file. Remarks: The server side Backload handler supports complex storage structures (folders). -These storage structures can be influenced server and client side. On the server side you can set up root folders (Web.Backload.config), on the client you set up context specific subfolders (see example below). -The good thing: You do not have to use all this settings. Just ignore these settings to use the default simple and flat structure. In this case everything is stored within a default folder (filesystem: ~/files) +These storage structures can be influenced server and client side. On the server side you can set up root folders (Web.Backload.config), on the client you set up context specific sub-folders (see example below). +The good thing: You do not have to use all this settings. Just ignore these settings to use the default simple and flat structure. In this case everything is stored within a default folder (file-system: ~/files) CLIENT SIDE AND SERVER SIDE SETTINGS -Server side settings: filesRoot, objectsRoot and content type specific subfolders (see "Settings and Default Values" below): -filesRoot is the root folder for all uploads. objectsRoot is a subfolder an can be ignored if you do not need it. -Set up content type specific sub folders, if you want to filter and store files of a specific content into separate subfolders. Example: Store images into an images subfolder (content-types: images/jpeg, images/png, etc. typeFragment: images/). See also example in the contentTypes section. +Server side settings: filesRoot, objectsRoot and content type specific sub-folders (see "Settings and Default Values" below): +filesRoot is the root folder for all uploads. objectsRoot is a sub-folders an can be ignored if you do not need it. +Set up content type specific sub folders, if you want to filter and store files of a specific content into separate sub-folders. Example: Store images into an images sub-folders (content-types: images/jpeg, images/png, etc. typeFragment: images/). See also example in the contentTypes section. Client side parameters: objectContext and uploadContext (see Example): The parameters objectContext and uploadContext are optional client side parameters). You do not have to include them in the request. Basically they influence the storage location on the server, regardless if it is a database or folder structure. Example: You want to set up an artist library were users are able to store content (songs, images, videos, other files). -You want to store the different content in separate subfolders of a root artist folder, where any content belongs to this specific artist is stored. +You want to store the different content in separate sub-folders of a root artist folder, where any content belongs to this specific artist is stored. Your servers folder structure: [filesRoot]/[objectsRoot]/[objectContext]/[uploadContext] (e.g. ~/files/artists/michealjackson/videos) where [filesRoot] and [objectsRoot] are set up server side in the Web.Backload.config file. ObjectContext will be the artist. It must be a unique name (e.g. michealjackson) or an id. Any uploaded files related to this artist will be stored within a location of this unique id or name. -UploadContext values are the different content types in this example (e.g. songs, images, videos, other) and result into a subfolder. -The client side parameters (objectContext, uploadContext and fileName) can be send in the url as a querystring or in the body (form) and will be used by the server side handler to determine the storage location. -Note: The subfolder structure can be even more complex: uploadContext supports subfolders within subfolders (e.g. /songs/mp3, /songs/wav, etc.). Simply separate the subfolders by semicolon. Use this example pattern as the value of uploadContext: uploadContext="songs;mp3" or uploadContext="documents;pdf". -Note also: You can also set up automatic storage into content type specific subfolders where Backload stores files based on their content type (e.g. pdf files into a "documents" subfolder) (see below). +UploadContext values are the different content types in this example (e.g. songs, images, videos, other) and result into a sub-folders. +The client side parameters (objectContext, uploadContext and fileName) can be send in the URL as a query-string or in the body (form) and will be used by the server side handler to determine the storage location. +Note: The sub-folders structure can be even more complex: uploadContext supports sub-folders within sub-folders (e.g. /songs/mp3, /songs/wav, etc.). Simply separate the sub-folders by semicolon. Use this example pattern as the value of uploadContext: uploadContext="songs;mp3" or uploadContext="documents;pdf". +Note also: You can also set up automatic storage into content type specific sub-folders where Backload stores files based on their content type (e.g. PDF files into a "documents" sub-folders) (see below). SETTINGS AND DEFAULT VALUES (2.2): @@ -29,46 +29,46 @@ SETTINGS AND DEFAULT VALUES (2.2): backload: // Basic settings for the Backload component library. TIP: You do not need to include any of these setting in your web.config or external config file, if these default settings fit your needs. storageContext: // Files can be stored in the file system to a cloud storage or to a database [Default: "Filesystem"] - Filesystem // Saves uploaded files in the file system (or SMB/unc shared folder) [Default] - CloudStorage // Saves uploaded files to a cloud storage and enables the coud configuration element. - Database // Saves uploaded files to a database and enables the database configuration element. Supports codeless storage (no application code needed), Entity Framework, Sql FileStreams, Sql FileTables and external file storage (filesystem). + Filesystem // Saves uploaded files in the file system (or SMB/UNC shared folder) [Default] + CloudStorage // Saves uploaded files to a cloud storage and enables the cloud configuration element. + Database // Saves uploaded files to a database and enables the database configuration element. Supports code-less storage (no application code needed), Entity Framework, SQL FileStreams, SQL FileTables and external file storage (filesystem). eventing // In your custom code you can bind an handler to events. If this option is set to true, events will be fired [Default="false"]. tracing // Enables tracing support. Note that tracing consumes some system resources and should only be enabled during development or to find errors in production. [Default: false]. enableIntegratedHandler // By default the internal file upload handler is running and ready to receive incoming files or requests. This enables us zero configuration. If you want to set up your own controller in order to do some business logic, set this to "false". [Default: "true"] webFilesRoot // Obsolete. Use "virtualDirectory" in the FileSystem or database element instead. This attribute will be removed in a future release. - uniqueFileNames // Generates unique file names based on guids [Default: "false"] - keepOrgFileNames // Only applies, if you use the uniqueFileNames option. If set to true, the original file name will be stored (subfolder: _mappings) [Default: "false"] - getInclSubFolders // On a GET request (return links to uploaded files) only the upload root folder (default filesRoot) is searched for uploaded files. Set to true in order to include subfolders. (Example: A content-type specific subfolder is set to "pdffiles" the search will find files within this subfolder. There are several ways set up subfolders, e.g. uploadContext and objectContext) [Default: "false"] + uniqueFileNames // Generates unique file names based on GUIDs [Default: "false"] + keepOrgFileNames // Only applies, if you use the uniqueFileNames option. If set to true, the original file name will be stored (sub-folders: _mappings) [Default: "false"] + getInclSubFolders // On a GET request (return links to uploaded files) only the upload root folder (default filesRoot) is searched for uploaded files. Set to true in order to include sub-folders. (Example: A content-type specific sub-folders is set to "pdffiles" the search will find files within this sub-folders. There are several ways set up sub-folderss, e.g. uploadContext and objectContext) [Default: "false"] returnExtraInfo // We use this setting, to return internal information for the jQuery File Upload Plugin. If you do not want this, set it to "none" [Default: "basic"] - plugin // Defines the default Json output format. You can overwrite the Json output within the OutgoingResponseCreated event. See examples [Default: "Auto"] - JQueryFileUpload // Generates Json for the jQuery FileUpload plugin from blueimp [Default]. - PlUpload // Generates Json for PlUpload plugin from Moxiecode. - FineUploader // Generates Json for the Fine Uploader from Widen Enterprises - Auto // Send a plugin=[JQueryFileUpload|PlUpload|Custom] querystring (not case sensitive) with your request (Example: plugin=plupload). Because this is request based you can change the JSON output with every ajax request. + plugin // Defines the default JSON output format. You can overwrite the JSON output within the OutgoingResponseCreated event. See examples [Default: "Auto"] + JQueryFileUpload // Generates JSON for the jQuery FileUpload Plugin from blueimp [Default]. + PlUpload // Generates JSON for PlUpload Plugin from Moxiecode. + FineUploader // Generates JSON for the Fine Uploader from Widen Enterprises + Auto // Send a plugin=[JQueryFileUpload|PlUpload|Custom] query-string (not case sensitive) with your request (Example: plugin=plupload). Because this is request based you can change the JSON output with every AJAX request. Custom // Does not generate an output before calling the OutgoingResponseCreated event and you have to generate your own output in this event. - base64MaxSize // Max length of a base64 encoded embedded data url. Only required if a url pattern is set to return a base64 string in kb (e.g. thumbsUrlPattern="{base64}") [Default="1000" = 1MB]. + base64MaxSize // Max length of a base64 encoded embedded data URL. Only required if a URL pattern is set to return a base64 string in KB (e.g. thumbsUrlPattern="{base64}") [Default="1000" = 1MB]. deleteUrlPattern, fileUrlPattern, - thumbsUrlPattern: // This attribute sets the pattern of the url returned back to the client in order to download or delete a file. You can use the shortcuts described below. If you do not set this attribute, a direct link is returned by default. If you do not want to return a url, set this to an empty string or use the shortcut {none} (e.g. thumbsUrlPattern="{none}" [Default (GET):"{url}", Default (DELETE):"{backload}"]. + thumbsUrlPattern: // This attribute sets the pattern of the URL returned back to the client in order to download or delete a file. You can use the shortcuts described below. If you do not set this attribute, a direct link is returned by default. If you do not want to return a URL, set this to an empty string or use the shortcut {none} (e.g. thumbsUrlPattern="{none}" [Default (GET):"{url}", Default (DELETE):"{backload}"]. [not set],{url} // If you want a direct link to download the file, do NOT set this value or set the shortcut {url} (e.g. fileUrlPattern="{url}". You do not need to set this value as this is the default for GET requests (DELETE requests: if not set {backload} is the default). - [empty],{none} // If you do not want a url to be returned for GET or DELETE requests, set this attribute to an empty string or use the shortcut {none} (e.g. fileUrlPattern=""). + [empty],{none} // If you do not want a URL to be returned for GET or DELETE requests, set this attribute to an empty string or use the shortcut {none} (e.g. fileUrlPattern=""). {backload} // If you want the file to be returned/deleted by the Backload component, set it to the shortcut {backload} (Default for the deleteUrlPattern. An explicit file single file request (GET/DELETE with a filename) will now be handled as any other request by the Backload component. You can use your extensions like you are used to. We added an additional extension for the Get file requests: IGetFileRequest. Backloads internal handler has the following pattern (see below) fileUrlPattern="~/Backload/UploadHandler?{fileName}&{objectContext}&{uploadContext}&{content} (empty values are not send back). "{Backload}" is the default for the deleteUrlPattern. - [pattern] // You can define your own pattern for urls returned to the client, for example if you want to use your own download handler. + [pattern] // You can define your own pattern for URLs returned to the client, for example if you want to use your own download handler. // Use the shortcuts below (Example: thumbsUrlPattern="http://downloads.myweb.com?file={fileName}&path={full}&preview&foo={query:bar}") // "~/": Relative to web root (Replacement example http://localhost/). // {name}: Resolves to name of the file (Example:{name} => somepic.jpg). // {fileName}: Resolves to name of the file as a full query (Example:{fileName} => fileName=somepic.jpg). - // {original}: Resolves to original name of the file (can be used when the name has changed dureing processing) (Example:{originalName} => originalname.jpg). - // {originalName}: Resolves to original name of the file (can be used when the name has changed dureing processing) as a full query (Example:{originalName} => fileName=originalname.jpg). - // {root}: Resovles to relative root storage folder path (Replacement example: files/uploads/) + // {original}: Resolves to original name of the file (can be used when the name has changed during processing) (Example:{originalName} => originalname.jpg). + // {originalName}: Resolves to original name of the file (can be used when the name has changed during processing) as a full query (Example:{originalName} => fileName=originalname.jpg). + // {root}: Resolves to relative root storage folder path (Replacement example: files/uploads/) // {objectContext} If you send an objectContext with your request, this will be the value of the objectContext parameter (see examples for more on this) // {uploadContext} If you send an uploadContext with your request, this will be the value of the uploadContext parameter(see examples for more on this) - // {content} For a content type subfolders, if you set up this feature + // {content} For a content type sub-folders, if you set up this feature // {full} Shortcut for [root]/[objectContext]/[uploadContext]/[content]/ - // {base64} Encodes the data (bytes) as a base64 string and includes it in the JSON response. Limited to 256 kb file size, switches to {Backload} if bigger. Saves file requests but blows up the JSON output (not deleteUrlPattern). - // {query:all} If you send custom querystrings along with your request all will be returned in the url. - // {query:key} The custom querystring with this key will be returned. (Example: {query:foo} => &foo=bar) - xmlns:*, xsi:* // No custom setting. Used for schema validation and Visual Studio intellisence. + // {base64} Encodes the data (bytes) as a base64 string and includes it in the JSON response. Limited to 256 KB file size, switches to {Backload} if bigger. Saves file requests but blows up the JSON output (not deleteUrlPattern). + // {query:all} If you send custom query-strings along with your request all will be returned in the URL. + // {query:key} The custom query-string with this key will be returned. (Example: {query:foo} => &foo=bar) + xmlns:*, xsi:* // No custom setting. Used for schema validation and Visual Studio Intellisense. @@ -76,13 +76,13 @@ SETTINGS AND DEFAULT VALUES (2.2): - fileSystem: // Sets the parameters for the dedicated storage location Filesystem or Database (EntityFramework): + fileSystem: // Sets the parameters for the "Filesystem" storage location: filesRoot // Root upload folder. If the value starts with '~/' (e.g. ~/files) the path is relative to the web application root, otherwise set an absolute local path (e.g. d:\files) and also set a virtual path name in the "virtualDirectory" attribute [Default: "~/Files"] - objectsRoot // Subfolder within the filesRoot. Set it to objectsRoot="" if you do not need a subfolder [Default: ""]. - copiesRoot // Root of a folder where Backload stores a copy of an uploaded file, if set to a none empty string. If the value is empty ("") not copies are stored. If the value starts with '~/' (e.g. ~/copies) the path is relative to the web root. If the value not starts with '~/' and it isn't an absolute local path, the value will be treated as a subfolder to filesRoot ('copies' -> ~/files/copies). Otherwise set an absolute local path (e.g. d:/backup) [Default: ""]. + objectsRoot // Sub-folder within the filesRoot. Set it to objectsRoot="" if you do not need a sub-folders [Default: ""]. + copiesRoot // Root of a folder where Backload stores a copy of an uploaded file, if set to a none empty string. If the value is empty ("") not copies are stored. If the value starts with '~/' (e.g. ~/copies) the path is relative to the web root. If the value not starts with '~/' and it isn't an absolute local path, the value will be treated as a sub-folders to filesRoot ('copies' -> ~/files/copies). Otherwise set an absolute local path (e.g. d:/backup) [Default: ""]. chunkPathPrefix // Temporary folder prefix if file chunks are uploaded into the upload folder before they are merged [Default: "$$"]. - virtualDirectory // Name of virtual directory in your IIS application to an external storage location (unc or full file system path). If filesRoot is relative to the web application root (starts with '~/', see filesRoot), you do not need to set this value. If filesRoot is an absolute path, you usually set a virtual path in IIS to this external location. In this case, the virtualDirectory attribute must be set to the name of the virtual path and filesRoot to the external path. Example: If the virtual path is z:\files and the name is "files", set filesRoot="z:\files" and virtualDirectory="/files" [Default: "/"] - auxFilesFolder // Subfolder for supporting files (previews, mappings, etc). If "auxFilesFolder" is not empty (e.g. auxFilesFolder="_aux") supporting files will be stored in an external path ([filesRoot]\[auxFilesFolder]\). In this case the main upload directories only contain the uploaded files. [Default: ""]. + virtualDirectory // Name of virtual directory in your IIS application to an external storage location (UNC or full file system path). If filesRoot is relative to the web application root (starts with '~/', see filesRoot), you do not need to set this value. If filesRoot is an absolute path, you usually set a virtual path in IIS to this external location. In this case, the virtualDirectory attribute must be set to the name of the virtual path and filesRoot to the external path. Example: If the virtual path is z:\files and the name is "files", set filesRoot="z:\files" and virtualDirectory="/files" [Default: "/"] + auxFilesFolder // Sub-folder for supporting files (previews, mappings, etc). If "auxFilesFolder" is not empty (e.g. auxFilesFolder="_aux") supporting files will be stored in an external path ([filesRoot]\[auxFilesFolder]\). In this case the main upload directories only contain the uploaded files. [Default: ""]. @@ -90,19 +90,19 @@ SETTINGS AND DEFAULT VALUES (2.2): - database: // Provides setting for database configuration. Supports codeless storage (no application code needed), Entity Framework, Sql FileStreams, Sql FileTables and external file storage (filesystem). + database: // Provides setting for database configuration. Supports code-less storage (no application code needed), Entity Framework, SQL FileStreams, SQL FileTables and external file storage (file-system). connection // Name of the database connection (see Web.config). Can also be a connection string. [Default: "FilesContext"] tableName // Name of the underlying database table [Default: "Files"]. storageMode: // Defines if files are stored within the database file or as SqlFiieStream. SqlFIleStreams are stored outside of the database file as blob within the file system, but they are managed by the database engine. When using SqlFileStreams, SQL Server and the database must enable the SqlFileStream feature. More info: FILESTREAM (SQL Server). [Default: "Internal"]. Internal // Files will be stored within the database (default). - SqlFileStream // Files will be stored as SqlFileStream outside of the database file in a filesystem directory, but managed by the database engine. This allows us to store very large files. More info: FILESTREAM (SQL Server). Unlike SqlFileTable, files (blobs) cannot be accessed directly on the file system. - SqlFileTable // Like SqlFileStreams, files will be stored in a SqlFileTable outside of the database file in a filesystem directory, but managed by the database engine. This allows us to store very large files. More info: FileTables (SQL Server). Unlike SqlFileStreams FileTable files can be accessed, created and deleted within the file system as normal file. This allows us for example to copy a file with the explorer to the FileTable's directory in the file system where Sql Server catches the file and manages it. You can also enable a client to directory download the file if you create a virtual path from IIS to the FileTable directory. - FileSystem // Files will be stored on the filesystem. A virtual path in the database points to the file. - fileTableName // Name of the SqlFileTable if a SqlFileTable is running on Sql Server. In a SqlFileTable, files will be stored outside of the database file in a filesystem directory, but managed by the database engine. This allows to store very large files. In contrast to SqlFileStreams, SqlFileTable files can be accessed, created and deleted directly within the file system as normal files. This allows us for example to copy a file with the explorer to the FileTable's directory in the file system where Sql Server catches the file and manages it. When you create a virtual path in IIS to the FileTable directory in the filesystem, A client can download the files in the SqlFileTable directly from the browser. FileTables (SQL Server). [Default: "FileTable"]. + SqlFileStream // Files will be stored as SqlFileStream outside of the database file in a file-system directory, but managed by the database engine. This allows us to store very large files. More info: FILESTREAM (SQL Server). Unlike SqlFileTable, files (blobs) cannot be accessed directly on the file system. + SqlFileTable // Like SqlFileStreams, files will be stored in a SqlFileTable outside of the database file in a file-system directory, but managed by the database engine. This allows us to store very large files. More info: FileTables (SQL Server). Unlike SqlFileStreams FileTable files can be accessed, created and deleted within the file system as normal file. This allows us for example to copy a file with the explorer to the FileTable's directory in the file system where Sql Server catches the file and manages it. You can also enable a client to directory download the file if you create a virtual path from IIS to the FileTable directory. + FileSystem // Files will be stored on the file-system. A virtual path in the database points to the file. + fileTableName // Name of the SqlFileTable if a SqlFileTable is running on SQL Server. In a SqlFileTable, files will be stored outside of the database file in a file-system directory, but managed by the database engine. This allows to store very large files. In contrast to SqlFileStreams, SqlFileTable files can be accessed, created and deleted directly within the file system as normal files. This allows us for example to copy a file with the explorer to the FileTable's directory in the file system where Sql Server catches the file and manages it. When you create a virtual path in IIS to the FileTable directory in the filesystem, A client can download the files in the SqlFileTable directly from the browser. FileTables (SQL Server). [Default: "FileTable"]. rootPath // Root path of the file directory when using external file storage (storageMode: SqlFileTable or FileSystem) (SqlFileTable example: "\\Server\SQLEXPRESS\FILES\Uploads\" where "FILES" is the database and "Uploads" is the name of the SqlFileTable.) (FilePath example: z:\Uploads). NOTE: If rootPath is not configured in storageMode "SqlFileTable", rootPath will be automatically retrieved from Sql Server. [Default: "~/Files"] tempFolder // If set to a none empty string, this setting is used to store file chunks, before the full uploaded file will be stored into the database. If you use chunked file uploads, it is recommend to store the chunks in a temporary directory to get best performance. (Examples: "~/Files/Temp/" (app relative), "z:\dbstorage\temp\" (absolute), "\\server\dbstorage\temp\" (unc)) [Default: ""] columnMapping // If the data model has different column names than the defaults (e.g. FileId instead of the default Id), a column mapping for column names can be set. Example: columnMapping="{Id=FileId,Name=FileName,Original=OriginalName}". This setting can also be done within the context. See also the database demo package. [Default: ""] - virtualDirectory // Storage mode "SqlFileTable" or "FileSystem" only. This setting is only needed if direct download of files is enabled in the configuration with the setting filesUrlPattern="{url}" (default: {backload}). Note: Direct download of files is only available in the storage modes "SqlFileTable" and "FileSystem", because in these modes files are stored as regular files on the file system. As in standard filesystem storage, VirtualDirectory needs to be set as the name of a virtual directory in IIS or an absolute url //if the file system to download files is outside the web application (e.g. UNC shares). VirtualDirectory represents the name of virtual path in your IIS application to an external storage location. If filesRoot is relative to the web application root (starts with '~/', see filesRoot), you do not need to set this value. If filesRoot is an absolute path, you usually set a virtual path in IIS to this external location. In this case, the virtualDirectory attribute must be set to the name of the virtual path and filesRoot to the absolute path. Example: If the virtual path is z:\files and the name is "files", set filesRoot="z:\files" and virtualDirectory="/files" [Default: "/"] + virtualDirectory // Storage mode "SqlFileTable" or "FileSystem" only. This setting is only needed if direct download of files is enabled in the configuration with the setting filesUrlPattern="{url}" (default: {backload}). Note: Direct download of files is only available in the storage modes "SqlFileTable" and "FileSystem", because in these modes files are stored as regular files on the file system. As in standard filesystem storage, VirtualDirectory needs to be set as the name of a virtual directory in IIS or an absolute URL //if the file system to download files is outside the web application (e.g. UNC shares). VirtualDirectory represents the name of virtual path in your IIS application to an external storage location. If filesRoot is relative to the web application root (starts with '~/', see filesRoot), you do not need to set this value. If filesRoot is an absolute path, you usually set a virtual path in IIS to this external location. In this case, the virtualDirectory attribute must be set to the name of the virtual path and filesRoot to the absolute path. Example: If the virtual path is z:\files and the name is "files", set filesRoot="z:\files" and virtualDirectory="/files" [Default: "/"] extension // Name of the plugin file, e.g. extension="Backload.Plugin.Database.dll". If this is an empty string the extension name will be automatically set to: "Backload.Plugin.Database.dll [Default: "Backload.Plugin.Database.dll"] @@ -118,23 +118,24 @@ SETTINGS AND DEFAULT VALUES (2.2): azureBlobStorage: // Microsoft Azure Blob storage settings connectionString // Azure Storage Service connection string name, usually located in the .cscfg file or Web.config. If this is an empty string, the local storage emulator will be used [Default: "StorageConnectionString"] - [not set] // Backload looks for the connectionstring "StorageConnectionString" in Azure service definition file (.cscfg) or Web.config + [not set] // Backload looks for the connection-string "StorageConnectionString" in Azure service definition file (.cscfg) or Web.config [empty], ""] // Internally resolved to "UseDevelopmentStorage=true". Uses the storage emulator {string} // Backload looks for a custom name in the Azure service definition file (.cscfg) or in Web.config uploadContainer // Name of the files upload container. Example: uploadContainer="files". Must start with a lowercase letter. Automatically created if it doesn't exist [Default: "files"] + previewContainer // Name of the thumbnails container. Example: previewContainer="previews". Must start with a lowercase letter. Automatically created if it doesn't exist [Default: "previews"] accessType: // Public access type to the uploaded files [Default: "token"] private // No public access. - public // Anyone with the url can get or list, but not store or delete files. + public // Anyone with the URL can get or list, but not store or delete files. token // Ad-hoc shared access signature (SAS). Storage access requires a valid access token. [Default]. - storedPolicy // A shared (stored) access policy will be used. Define a name of the stored policy within the storedPolicyName attribute. Note: Note: Your code is responsable to renew the policy before it expires! - storedPolicyName // If accessType is set to "storedPolicy", this attribute is the name of the shared access policy. Note: Your code is responsable to renew the policy before it expires! [Default: "backload"] + storedPolicy // A shared (stored) access policy will be used. Define a name of the stored policy within the storedPolicyName attribute. Note: Note: Your code is responsible to renew the policy before it expires! + storedPolicyName // If accessType is set to "storedPolicy", this attribute is the name of the shared access policy. Note: Your code is responsible to renew the policy before it expires! [Default: "backload"] tokenExpires // Sas access type only. Time period (in minutes) before the shared access token expires. [Default: "60"] - objectsRoot // Virtual subfolder within the uploadContainer. Set it to objectsRoot="" if you do not need a subfolder [Default: ""] + objectsRoot // Virtual sub-folders within the uploadContainer. Set it to objectsRoot="" if you do not need a sub-folders [Default: ""] copiesContainer // Name of a copy container. [Default: ""] containerCreation // Sets the container existence checking and auto creation behavior [Default: "auto"] - auto // Container existence is verified on first access, created it if neccessary, after that assumed that the container exists (Default). - always // Verify container exsistence on every request and try to create it if it not exists. - never // No checks for container exsistence. The containers (files, previews, [archives]) must be available (pre-created) on a request. + auto // Container existence is verified on first access, created it if necessary, after that assumed that the container exists (Default). + always // Verify container existence on every request and try to create it if it not exists. + never // No checks for container existence. The containers (files, previews, [archives]) must be available (pre-created) on a request. @@ -145,19 +146,19 @@ SETTINGS AND DEFAULT VALUES (2.2): security: // Security related settings. By default there are no restrictions. If you need a deeper control, set up your own controller to receive the request, do the authentication/authorization and then call the handler. - forceObjectContext // A request must always include an none empty objectContext parameter (query or form) to be valid. If you use "objectContext" to store/retirieve user related files, a malicious request could reveal some other users files, if forceObjectContext is false [Default:"false"] + forceObjectContext // A request must always include an none empty objectContext parameter (query or form) to be valid. If you use "objectContext" to store/retrieve user related files, a malicious request could reveal some other users files, if forceObjectContext is false [Default:"false"] allowAnonymous // True: Anyone is allowed, false: The user must be authenticated [Default: "true"] allowedDownloadRole // By default there are no restrictions on who can download files by a GET request. You can change this by adding a comma separated list of roles [Default: "*"] - allowedUploadRoles // By default there are no restrictions on who can upload files whithin a POST/PUT request. You can change this by adding a comma separated list of roles [Default: "*"] + allowedUploadRoles // By default there are no restrictions on who can upload files within a POST/PUT request. You can change this by adding a comma separated list of roles [Default: "*"] allowedDeleteRoles // By default there are no restrictions on who can delete files by a DELETE request. You can change this by adding a comma separated list of roles [Default: "*"] - cors: // Enables/disables and configures CROSS-ORIGIN RESOURCE SHARING (CORS). CORS is used in environments, where file requests (e.g. GET) come from diffenrent domains (e.g. client: http://www.yourwebsite.com, Backload: http://fileservice.com/Backload/Filehandler). + cors: // Enables/disables and configures CROSS-ORIGIN RESOURCE SHARING (CORS). CORS is used in environments, where file requests (e.g. GET) come from different domains (e.g. client: http://www.yourwebsite.com, Backload: http://fileservice.com/Backload/Filehandler). enabled // To enable CORS requests set this attribute to true [Default=°false°] - allowedDomains // Comma-separated list of allowed domains for client side requests or "*" to allow all client side cors requests. Example: allowedOrigin="http://www.myservice.com". [Default="*"] - allowedMethods // C omma-separated list of allowed http methods. [Default="GET,POST,DELETE"] + allowedDomains // Comma-separated list of allowed domains for client side requests or "*" to allow all client side CORS requests. Example: allowedOrigin="http://www.myservice.com". [Default="*"] + allowedMethods // Comma-separated list of allowed HTTP methods. [Default="GET,POST,DELETE"] allowedHeaders // Comma-separated list of allowed (none simple) headers. [Default=""] credentials // Specifies if a request should send credentials by setting credentials="true" [Default="false"] - maxAge // Validity period of cors permission settings (in seconds) before the client makes a new request for permissions. Note: Not all clients use this value [Default="36000"] + maxAge // Validity period of CORS permission settings (in seconds) before the client makes a new request for permissions. Note: Not all clients use this value [Default="36000"] @@ -173,9 +174,9 @@ SETTINGS AND DEFAULT VALUES (2.2): dpi // Resolution of the resulting image (dots per inch) [Range: 1-2400, Default: "96"] canvasColor // Background color of the canvas. Only used when resize mode is fit and the image ratio of the source and target image differ. You can also use argb (rgb with alpha channel, e.g. background: #00ffffff (transparent), #80ffffff (white, 50% transparency), #ffffffff (white, opaque)) [Default: #ffffff] maxFileSize // Images only: Max file size (bytes) of an image to be processed by the image processing sub pipeline. If the file size is bigger, the image is stored directly bypassing image processing [Default: "0" (unlimited)]. - forceImageType: // Images only: By default the image type of the original image is used. Set this attribute to always output a different type (e.g. image/png or image/jpeg [Defailt: none]) + forceImageType: // Images only: By default the image type of the original image is used. Set this attribute to always output a different type (e.g. image/png or image/jpeg [Default: none]) none // Use the original image type - image/png // Files with .png (protable network graphics) extension + image/png // Files with .png (portable network graphics) extension image/jpeg // Files with .jpeg or .jpg extension image/tiff // Files with .tif or .tiff extension image/gif // Files with .gif extension @@ -187,16 +188,17 @@ SETTINGS AND DEFAULT VALUES (2.2): maxratio // Same as ratio, but smaller images are not upscaled. fit // Fit into canvas, preserves ratio, centered on canvas place // If the source image is bigger than the canvas same as fit. If it is smaller than the canvas, it will be placed in the center of the canvas without resizing - crop // Placed on canvas, cropped if neccessary with center of the original image + crop // Placed on canvas, cropped if necessary with center of the original image + fastProcessing // Enables/disables faster image processing for non-canvas transformations (e.g. ratio) or for images that are bigger than canvas. [Default: "true"] watermark // Images only: Optional watermark image if images are uploaded. Example: watermark="~/Backload/Imaging/watermark.png". [Default: "" (no watermark)]. background // Images only: Optional background image if images are placed or fit onto a canvas. Example: background="~/Backload/Imaging/background.png". [Default: "" (no background image)]. watermarkPosition: // Images only: Vertical position of a watermark to be placed on an image[Default: "center"] top // Top position center // Center position bottom // Bottom position - imageType // Thumbnails only: Thumnail images must all have the same image type in order the upload handler can find and return the correct thumbnail path [Default: "image/png"] - path // Thumbnails only: Location of the thumbnail subfolder within the folder where the main file is stored. Set to an empty string (path="") to avoid physical storage. [Default: "_thumbs"]< - store // Thumbnail only: If set to "true" (default), preview images are stored physically. If this attribute is set to false and you request preview images (e.g. in a plugin ui) thumbnails have to be created on every request. If you usually use preview images it is recommed to set this attribute to "true". [Default: "true"] + imageType // Thumbnails only: Thumbnail images must all have the same image type in order the upload handler can find and return the correct thumbnail path [Default: "image/png"] + path // Thumbnails only: Location of the thumbnail sub-folders within the folder where the main file is stored. Set to an empty string (path="") to avoid physical storage. [Default: "_thumbs"]< + store // Thumbnail only: If set to "true" (default), preview images are stored physically. If this attribute is set to false and you request preview images (e.g. in a plugin UI) thumbnails have to be created on every request. If you usually use preview images it is recommed to set this attribute to "true". [Default: "true"] @@ -205,7 +207,7 @@ SETTINGS AND DEFAULT VALUES (2.2): - clientFiles: // If the bundeling feature is used (@Render.Scripts(), @Render.Styles()), set the appropriate files folder. TIP: Don't forgat to register the bundeling feature in the global.asax. See example project. + clientFiles: // If the bundling feature is used (@Render.Scripts(), @Render.Styles()), set the appropriate files folder. TIP: Don't forget to register the bundling feature in the global.asax. See example project. scripts // Scripts folder [Default: "~/Backload/Client"] styles // Styles folder [Default: "~/Backload/Client"] @@ -215,7 +217,7 @@ SETTINGS AND DEFAULT VALUES (2.2): - cacheManager: // Adds cache headers to the response if enabled, and returns a http status 304 (Not Modified), if no files have been uploaded or deleted sinse the last request. Note: If you manually or by a different application change files, don't use "lastModified=true", because only requests within Backload's pipeline will be recognized. + cacheManager: // Adds cache headers to the response if enabled, and returns a HTTP status 304 (Not Modified), if no files have been uploaded or deleted since the last request. Note: If you manually or by a different application change files, don't use "lastModified=true", because only requests within Backload's pipeline will be recognized. lastModified // If true, includes a Last-Modified header in the response and returns a 304 (Not Modified) if no files where uploaded or deleted since the last request. [Default="false"] etag // If true, a ETag is returned in the response on a single file request. In the next request for this file a 304 is returned, if the file has not been modified. [Default="false"] expires // Adds an Expires header to the response, if the value is not 0 (seconds). Example: useExpires="3600" (adds 1 hour to the Expires header) [Default="0"] @@ -234,23 +236,23 @@ SETTINGS AND DEFAULT VALUES (2.2): useThumbnailCanvas // Places the thumbnail on a canvas, so it has the same size than image thumbnails [Default: "true"] contentType: // Defines a new content type or overrides an existing type - // New contentType entry (MS Office, OpenOffice, PDF, Textfile are included by default. No need to inlude these anymore): + // New contentType entry (MS Office, OpenOffice, PDF, Textfile are included by default. No need to include these anymore): // Use to clear all preexisting entries, use to remove a specific entry (Example: to remove the predefined PDF type). - // Predifined type names: _AdobePDFFile, _MSExcel2003, _MSExcel2012, _MSPowerpoint2003, _MSPowerpoint2012, _MSWord2003, _MSWord2012, _OpenOfficeWriter, _TextFile. + // Pre-defined type names: _AdobePDFFile, _MSExcel2003, _MSExcel2012, _MSPowerpoint2003, _MSPowerpoint2012, _MSWord2003, _MSWord2012, _OpenOfficeWriter, _TextFile. // Remarks: _MSxxxx2012 includes all file types from 2007 to 2012 office versions. _MSxxxx2003 includes all file types up to the 2003 office version. name // A unique name of the entry extFragment // Complete or fragment of the file extension as RegEx string (e.g. .mp finds .mp3, .mp4, .mpeg, etc). Leave it blank, to skip this test. typeFragment // Complete or fragment of the content-type as RegEx string (e.g. "mpeg" audio/mpeg, video/mpeg, etc). Leave it blank, to skip this test. Content-types matches are preferred over extension matches. thumbnail // Name of the thumbnail image within the content-types thumbnail folder. Special handling of images: Leave it blank, to send a preview of the uploaded image back, or set a thumbnail if you do not want to return a preview. - subfolder // Subfolder of the object context folder. Has to be set only if files of this content-type should be stored seperatly from other types (e.g. "movies"). [Default: ""] + sub-folders // Sub-folder of the object context folder. Has to be set only if files of this content-type should be stored separately from other types (e.g. "movies"). [Default: ""] // Deletes all predefined types --> // Removes the type handling for a specific content type. Example: --> - // Remove predefined pdf type handling - // Add special type handling for pdf files. Subfolder will be created, if it doesn't exist - // Add special content type handling for all image types and store them in a image subfolder. This folder will be automatically created if it doesn't exist. The attribute thumbnail is set to an empty string, so that an image preview will be returned (otherwise a static image) + // Remove predefined PDF type handling + // Add special type handling for PDF files. Sub-folder will be created, if it doesn't exist + // Add special content type handling for all image types and store them in a image sub-folders. This folder will be automatically created if it doesn't exist. The attribute thumbnail is set to an empty string, so that an image preview will be returned (otherwise a static image) @@ -258,7 +260,7 @@ SETTINGS AND DEFAULT VALUES (2.2): license: // Provided license data for Pro/Enterprise editions only - licensee: // Provided licensee value (usually email adress). Obligatory field in the paid editions. + licensee: // Provided licensee value (usually email address). Obligatory field in the paid editions. licenseKey: // Provided license key. Obligatory field in the paid editions. diff --git a/WebCms/Backload/Release.txt b/WebCms/Backload/Release.txt index 47a490a..d665f98 100644 --- a/WebCms/Backload/Release.txt +++ b/WebCms/Backload/Release.txt @@ -1,9 +1,16 @@ -What's new in release 2.2.2.5? +What's new in release 2.2.7 (ASP.NET Core Edition)? +- Added bundled and minified client side script and style files and +- Removed ASP.NET server side bundling (depreciated in ASP.NET Core 1.0) +- Added server side event ConfigurationLoaded (First event in execution pipeline) +- Removed Web.config component registration for all target platforms (obsolete in ASP.NEt Core 1.0 projects) +- Image processing supports EXIF orientation tag +- Added fastProcessing config setting in images element + +Bug fixes: +- Image processing failed to create non canvas images (#107) +- Fixed: Content type changes in config had no effect +- Linux and Mac Os X: Path not created correctly (2.2.6). -- Non image type thumbnail creation improved -- Improved url encoding -- Improved database custom result -- Auto spell-checked XML comments Release 2.2: diff --git a/WebCms/WebCms.csproj b/WebCms/WebCms.csproj index eda64bc..baa950b 100644 --- a/WebCms/WebCms.csproj +++ b/WebCms/WebCms.csproj @@ -57,13 +57,11 @@ ..\packages\AutoMapper.3.3.1\lib\net40\AutoMapper.Net4.dll True - - ..\packages\Backload.Core.2.2.2.5\lib\net45\Backload.dll - True + + ..\packages\Backload.Core.2.2.7\lib\net45\Backload.dll - - ..\packages\Backload.Core.2.2.2.5\lib\net45\Backload.Contracts.dll - True + + ..\packages\Backload.Core.2.2.7\lib\net45\Backload.Contracts.dll ..\packages\UmbracoCms.Core.7.5.6\lib\businesslogic.dll @@ -504,7 +502,6 @@ - @@ -604,9 +601,15 @@ - + + + + Designer + + + @@ -841,11 +844,6 @@ - - - - Designer - diff --git a/WebCms/packages.config b/WebCms/packages.config index 924dd23..6e45eea 100644 --- a/WebCms/packages.config +++ b/WebCms/packages.config @@ -2,8 +2,8 @@ - - + +