在一定的保留期限之后,我需要一些存档清理代码来删除旧的Azure日志。
我知道我可以这样做:
CloudStorageAccount storageAccount = CloudStorageAccount.Parse("");
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
CloudBlobContainer container = blobClient.GetContainerReference("ctr");
var blobList = container.ListBlobs();
foreach(var blob in blobList)
{
logger.Info($"Blob Name: {blob.Uri}");
}
Run Code Online (Sandbox Code Playgroud)
但是在我的容器中结构是
/
/year/month/day/hour/files
Run Code Online (Sandbox Code Playgroud)
所以现在有
/2017/5/11/14/files
/2017/5/11/17/files
/2017/5/11/22/files
/2017/5/11/23/files
Run Code Online (Sandbox Code Playgroud)
和
/2017/5/12/11/files
Run Code Online (Sandbox Code Playgroud)
其中文件是多个备份文件。
for循环中只有1个项目,因为2017文件夹是根目录。
有没有办法检索所有斑点?
最终目标是删除所有早于保留期的Blob。
我之前玩过Web API,但似乎总是遇到我的方法无法路由到的相同问题。
我的应用程序具有该应用程序见解包,因此我可以看到它捕获了我提出的请求-通过查看方法签名上方的请求行,但它们从未真正执行过,并且App Insights报告失败的请求。
这是我的WebApiConfig
config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
;
Run Code Online (Sandbox Code Playgroud)
这是我简单的控制器和方法
public class ExampleController : ApiController
{
[HttpGet]
[ActionName("Test")]
public IHttpActionResult Test()
{
return Ok();
}
}
Run Code Online (Sandbox Code Playgroud)
这是MVC应用程序的一部分,因此,当我启动项目时,“主页/索引”视图将显示在浏览器中。然后,我去邮递员创建一个新的Get请求,指向
http://localhost:port/api/Example/Test
Run Code Online (Sandbox Code Playgroud)
但这导致404。
我一定做错了,因为我总是碰到这个
我有一个以下格式的字符串:
yyyy-mm-ddThh:mm:ssZ
Run Code Online (Sandbox Code Playgroud)
示例字符串:
2013-09-15T00:24:26.4215967Z
Run Code Online (Sandbox Code Playgroud)
我需要将其转换为日期时间,因此我使用以下代码:
string testDateExample = "2013-09-15T00:24:26.4215967Z";
DateTime dateConversion = XmlConvert.ToDateTime(testDateExample);
Console.WriteLine(dateConversion);
Run Code Online (Sandbox Code Playgroud)
哪个会输出:
9/15/2013 10:24:26 AM
Run Code Online (Sandbox Code Playgroud)
为什么00在当时被转换为上午10点?
使用PHP PDO我运行此查询
SELECT Name, Latitude, Longitude, Begin, End FROM VenueData
Run Code Online (Sandbox Code Playgroud)
并获取数据
$data = $sth->fetchAll();
Run Code Online (Sandbox Code Playgroud)
然后输出
header("Content-type: application/json");
print(json_encode(array('venues'=>$data)));
Run Code Online (Sandbox Code Playgroud)
然而输出很奇怪,
{"venues":[{"Name":"Flintstone1","0":"Flintstone1","Latitude":"57","1":"57","Longitude":"-124","2":"-124","Begin":"8","3":"8","End":"14","4":"14"}]}
Run Code Online (Sandbox Code Playgroud)
对于选择查询中的每一列,似乎在json中有2个键,一个是名称,另一个是索引0-n.我之前没遇到过这个,为什么会这样?
在我继承的一个非常古老的代码库中,有一个带有此签名的方法
public static void Remove<TSource>(this ICollection<TSource> source, Func<TSource, bool> predicate)
Run Code Online (Sandbox Code Playgroud)
我试图在一个数组上调用此方法.该数组名为Items,是一个section的属性
section.Items.Remove(// what goes here?)
Run Code Online (Sandbox Code Playgroud)
Items是一系列产品.
为清楚起见,这是Remove方法
public static void Remove<TSource>(this ICollection<TSource> source, Func<TSource, bool> predicate)
{
var items = source.ToArray();
for (var index = items.Length - 1; index >= 0; index--)
{
var item = items[index];
if (predicate.Invoke(item))
{
source.Remove(item);
}
}
}
Run Code Online (Sandbox Code Playgroud) 我有一个引用SharePoint列表的C#变量.
我需要迭代每个列表项并进行条件检查.
我想在进入循环之前使用linq调用来过滤掉一些数据.
以下是我如何引用该列表:
SPList list = root.Lists[LISTNAME];
Run Code Online (Sandbox Code Playgroud)
我想做的事情如下:
var items = from li in list.items
where li.field.Contains("value")
select li;
Run Code Online (Sandbox Code Playgroud)
这可能吗?我不确定标准命名空间System.Linq是否可以与SharePoint一起使用.
谢谢,安德鲁
我正在尝试使用 C# 中的 RestSharp 向 API 提交一些数据,似乎我的所有参数都添加到 Headers 集合中 - 或者这就是它们在 VS 中的编目方式。
这是我的代码
var client = new RestClient("https://api.com");
var request = new RestRequest("/recognize", Method.POST);
request.AddHeader("app_id", "");
request.AddHeader("app_key", "");
request.AddHeader("Content-Type", "multipart/form-data");
request.AddParameter("gallery_name", model.gallery_name);
request.AddParameter("image", model.image);
var response = client.Execute(request);
Run Code Online (Sandbox Code Playgroud)
从 API 返回的错误表示请求缺少 gallery_name 和 image 参数,但查看它们在 Headers 集合中的请求对象。
我可以在 Postman 中进行调用,其中方法设置为 Post,Body 设置为 form-data,并列出 2 个键/值对。
我究竟做错了什么?