There are also some international features that you might want to address. For example, instead of backslash some other characters may be used on Windows - ¥ on the Japanese version, ₩ on the Korean version. See [1] for more info.
Here is the citation: Security Considerations for Character Sets in File Names Windows code page and OEM character sets used on Japanese-language systems contain the Yen symbol (¥) instead of a backslash (\). Thus, the Yen character is a prohibited character for NTFS and FAT file systems. When mapping Unicode to a Japanese-language code page, conversion functions map both backslash (U+005C) and the normal Unicode Yen symbol (U+00A5) to this same character. For security reasons, your applications should not typically allow the character U+00A5 in a Unicode string that might be converted for use as a FAT file name. [1] - https://msdn.microsoft.com/en-us/library/dd374047(v=vs.85).aspx Best Regards, Igor On Tue, Dec 26, 2017 at 5:01 PM, Dmitriy Setrakyan <dsetrak...@apache.org> wrote: > Looks good to me. Is this going to be an exception on startup? If yes, is > it safe to release it, or should we wait till 3.0? > > On Tue, Dec 26, 2017 at 2:08 AM, Stanislav Lukyanov < > stanlukya...@gmail.com> > wrote: > > > Thanks for the feedback. > > > > It seems that another thing to handle is case-insensitive FS – “mycache” > > and “MyCache” is the same on Windows, so it might be reasonable to > disallow > > having two caches with names that are equal ignoring case. > > And one more thing is control characters – forbidding at least range of > > ASCII 0x00-0x20 seems reasonable. > > > > To summarize, a possible set of restrictions would be > > - Whitespace characters (via Character.isWhitespaceCharacter) > > - Control characters (via Character.isISOCharacter) > > - Slashes > > - Characters reserved in Windows (<>:"/\|?*) > > - Length (say, up to 255) > > - Distinct names of caches when ignoring case > > It seems reasonable to enforce that even regardless of persistence > > directories naming (AFAIU that’s what Dmitry meant by forbidding things > > altogether), so that’s what I’m going to do. > > Any concerns? > > Specifically, would it be OK from backward compatibility point of view to > > forbid all these characters now for all caches? > > > > Thanks, > > Stan > > > > > > From: Alexey Kuznetsov > > Sent: 26 декабря 2017 г. 7:51 > > To: dev@ignite.apache.org > > Subject: Re: Handling slashes in cache names > > > > It also make sense to limit cache name length to reasonable length. > > Because some File systems could have limitations on path length. > > See: https://en.wikipedia.org/wiki/Filename#Length_restrictions > > > > On Tue, Dec 26, 2017 at 1:41 AM, Dmitriy Setrakyan < > dsetrak...@apache.org> > > wrote: > > > > > My preference would be to prohibit forward and backward slashes in > cache > > > names altogether, as they may create a false feeling of some directory > > > structure, which does not exist. We should also prohibit spaces as > well. > > > > > > D. > > > > > > On Mon, Dec 25, 2017 at 7:09 AM, Stanislav Lukyanov < > > > stanlukya...@gmail.com> > > > wrote: > > > > > > > Hi all, > > > > > > > > I’m looking into https://issues.apache.org/jira/browse/IGNITE-7264, > > and > > > I > > > > need some guidance on what’s the best way to approach it. > > > > > > > > The problem is that cache names are not restricted, but if > persistence > > is > > > > enabled the cache needs to have a corresponding directory on the file > > > > system (“cache-…”) which can’t be created if the cache name contains > > > > certain characters (or a reserved system name). > > > > > > > > A straightforward approach would be to check if a cache name is > allowed > > > on > > > > the local system (e.g. via `Paths.get(name)`) and fail to create > cache > > if > > > > it isn’t, but I’m a bit concerned with the consistency of the > behavior > > > (the > > > > same cache name be allowed on one system and not on another). > > > > I think a better way would be to replace special characters (say, all > > > > non-alphanumeric characters) with underscores in file names (not > > changing > > > > the cache configuration). Would this be OK? Are there any risks I’m > not > > > > considering? > > > > > > > > WDYT? > > > > > > > > Thanks, > > > > Stan > > > > > > > > > > > > > > > -- > > Alexey Kuznetsov > > > > >