Sensenet:通过Sensenet客户端上传文件API并设置修改用户
Sensenet: Upload Files through Sensenet Client API and Set Modified User
我有一个要求,包括通过其他系统将文件上传到 sensenet。
我正在尝试使用 Sensenet 客户端 API 上传文件,但我在使用以下链接中记录的示例时遇到困难:
Client Library(代码运行良好,但文件未出现在 Sensenet 上)
Common API Calls(我在编译代码时遇到问题...实例化 BinaryData 对象)
除此之外,我需要为每个上传文件定义我在代码中指定的 "Modified By",而不是我用来在 API.
中验证我身份的用户
我认为重写 ModifiedBy 字段是一种边缘情况(或小技巧),但没有任何魔法也是可能的(请参阅代码)。最简单的方法是 POST 后跟 PATCH,由 SenseNet.Client 完美管理(代码使用本地演示站点):
static void Main(string[] args)
{
ClientContext.Initialize(new[]
{new ServerContext {Url = "http://localhost", Username = "admin", Password = "admin"}});
var localFilePath = @"D:\Projects\ConsoleApplication70\TestFileFromConsole1.txt";
var parentPath = "/Root/Sites/Default_Site/workspaces/Document/londondocumentworkspace/Document_Library";
var fileName = "TestFileFromConsole1.txt";
var path = parentPath + "/" + fileName;
var userPath = "/Root/IMS/BuiltIn/Demo/ProjectManagers/alba";
using (var stream = new FileStream(localFilePath, FileMode.Open))
Content.UploadAsync(parentPath, fileName, stream).Wait();
Console.WriteLine("Uploaded");
Modify(path, userPath).Wait();
Console.WriteLine("Modified");
Console.Write("Press <enter> to exit...");
Console.ReadLine();
}
// Rewrites the ModifiedBy field
private static async Task Modify(string path, string userPath)
{
var content = await Content.LoadAsync(path);
content["ModifiedBy"] = userPath;
await content.SaveAsync();
}
我有一个要求,包括通过其他系统将文件上传到 sensenet。
我正在尝试使用 Sensenet 客户端 API 上传文件,但我在使用以下链接中记录的示例时遇到困难: Client Library(代码运行良好,但文件未出现在 Sensenet 上) Common API Calls(我在编译代码时遇到问题...实例化 BinaryData 对象)
除此之外,我需要为每个上传文件定义我在代码中指定的 "Modified By",而不是我用来在 API.
中验证我身份的用户我认为重写 ModifiedBy 字段是一种边缘情况(或小技巧),但没有任何魔法也是可能的(请参阅代码)。最简单的方法是 POST 后跟 PATCH,由 SenseNet.Client 完美管理(代码使用本地演示站点):
static void Main(string[] args)
{
ClientContext.Initialize(new[]
{new ServerContext {Url = "http://localhost", Username = "admin", Password = "admin"}});
var localFilePath = @"D:\Projects\ConsoleApplication70\TestFileFromConsole1.txt";
var parentPath = "/Root/Sites/Default_Site/workspaces/Document/londondocumentworkspace/Document_Library";
var fileName = "TestFileFromConsole1.txt";
var path = parentPath + "/" + fileName;
var userPath = "/Root/IMS/BuiltIn/Demo/ProjectManagers/alba";
using (var stream = new FileStream(localFilePath, FileMode.Open))
Content.UploadAsync(parentPath, fileName, stream).Wait();
Console.WriteLine("Uploaded");
Modify(path, userPath).Wait();
Console.WriteLine("Modified");
Console.Write("Press <enter> to exit...");
Console.ReadLine();
}
// Rewrites the ModifiedBy field
private static async Task Modify(string path, string userPath)
{
var content = await Content.LoadAsync(path);
content["ModifiedBy"] = userPath;
await content.SaveAsync();
}