private void comboBox_Domain_Click(object sender, EventArgs e) { if (textBox_AK.Text != "" && textBox_SK.Text != "" && textBox_bucket_name.Text != "") { comboBox_Domain.Items.Clear(); comboBox_Domain.Items.Add("Loading..."); Mac mac = new Mac(textBox_AK.Text, textBox_SK.Text); Config config = new Config { // 设置上传区域 //Zone = Zone.ZONE_CN_East, // 设置 http 或者 https 上传 UseHttps = true, UseCdnDomains = true, ChunkSize = ChunkUnit.U512K }; BucketManager bm = new BucketManager(mac, config); DomainsResult DomainRet = bm.Domains(textBox_bucket_name.Text); comboBox_Domain.Items.Clear(); if (DomainRet.Result != null) { for (int i = 0; i < DomainRet.Result.Count; i++) { comboBox_Domain.Items.Add(DomainRet.Result[i]); } } } }
/// <summary> /// 获取空间文件列表 /// </summary> public static void listFiles() { Mac mac = new Mac(Settings.AccessKey, Settings.SecretKey); string bucket = "test"; string marker = ""; // 首次请求时marker必须为空 string prefix = null; // 按文件名前缀保留搜索结果 string delimiter = null; // 目录分割字符(比如"/") int limit = 100; // 单次列举数量限制(最大值为1000) BucketManager bm = new BucketManager(mac); List <FileDesc> items = new List <FileDesc>(); List <string> commonPrefixes = new List <string>(); do { var result = bm.ListFiles(bucket, prefix, marker, limit, delimiter); Console.WriteLine(result); marker = result.Result.Marker; } while (!string.IsNullOrEmpty(marker)); //foreach (string cp in commonPrefixes) //{ // Console.WriteLine(cp); //} //foreach(var item in items) //{ // Console.WriteLine(item.Key); //} }
public override void Process(HttpRequestArgs args) { if (Context.Item == null) { //http://addemo/Books{/2018/09/07/11/18/}bookname var requestUrl = args.Url.ItemPath; // remove last element from path and see if resulting path is a bucket var index = requestUrl.LastIndexOf('/'); if (index > 0) { var bucketPath = requestUrl.Substring(0, index); var bucketItem = args.GetItem(bucketPath); if (bucketItem != null && BucketManager.IsBucket(bucketItem)) { var itemName = requestUrl.Substring(index + 1).Replace("-", " "); // locate item in bucket by name using (var searchContext = ContentSearchManager.GetIndex("sitecore_web_index").CreateSearchContext()) { var result = searchContext.GetQueryable <SearchResultItem>(). Where(x => x.Name == itemName && x.TemplateId == BookTemplate.Book.ID) .FirstOrDefault(); if (result != null) { Context.Item = result.GetItem(); } } } } } }
public virtual IEnumerable <IEnumerable <FileDesc> > ListFiles(Func <bool> stop, uint retry_times = 1) { stop.Should().NotBeNull(); retry_times.Should().BeGreaterOrEqualTo(1); // 这个示例单独使用了一个Settings类,其中包含AccessKey和SecretKey // 实际应用中,请自行设置您的AccessKey和SecretKey string marker = string.Empty; // 首次请求时marker必须为空 string prefix = null; // 按文件名前缀保留搜索结果 string delimiter = null; // 目录分割字符(比如"/") var limit = 512; // 单次列举数量限制(最大值为1000) var bm = new BucketManager(this._mac); var retry = Policy.Handle <Exception>().Retry((int)retry_times); do { var data = retry.Execute(() => { var res = bm.ListFiles(this._option.QiniuBucketName, prefix, marker, limit, delimiter); res.ThrowIfException(); //获取新的游标 marker = res.Result.Marker; return(res.Result.Items); }); if (data?.Any() ?? false) { yield return(data); } } while (!string.IsNullOrEmpty(marker) && !stop.Invoke()); }
public PlanEvent GetThumbnailBytes(PlanEvent obj) { byte[] bytes = null; if (obj != null) { var itemBuckets = db.GetItem("/sitecore/content/EPG/Sections/PlanBuckets/AsiaPlan/"); if (itemBuckets != null && BucketManager.IsBucket(itemBuckets)) { using (var searchContext = ContentSearchManager.GetIndex("sitecore_master_index").CreateSearchContext()) { var result = searchContext.GetQueryable <SearchResultItem>().Where(x => x.Name.Equals(obj.PlanTitleID) && x.TemplateId == new ID("{50B06575-9906-4B50-8E63-3E8BBEF1F858}")).FirstOrDefault(); if (result != null) { if (!string.IsNullOrWhiteSpace(result.GetItem().Fields["Portrait Image"].Value)) { MediaItem mediaitem = ((Sitecore.Data.Fields.ImageField)result.GetItem().Fields["Portrait Image"]).MediaItem; Stream stream = new MediaItem(mediaitem).GetMediaStream(); bytes = new byte[stream.Length]; int l = stream.Read(bytes, 0, (int)stream.Length); obj.PortraitImageByte = bytes; } if (!string.IsNullOrWhiteSpace(result.GetItem().Fields["Landscape Image"].Value)) { MediaItem mediaitem = ((Sitecore.Data.Fields.ImageField)result.GetItem().Fields["Landscape Image"]).MediaItem; Stream stream = new MediaItem(mediaitem).GetMediaStream(); bytes = new byte[stream.Length]; int l = stream.Read(bytes, 0, (int)stream.Length); obj.LandscapeImageByte = bytes; } } } } } return(obj); }
internal GetHandler( Settings settings, LoggingModule logging, ConfigManager config, BucketManager buckets, AuthManager auth) { if (settings == null) { throw new ArgumentNullException(nameof(settings)); } if (logging == null) { throw new ArgumentNullException(nameof(logging)); } if (config == null) { throw new ArgumentNullException(nameof(config)); } if (buckets == null) { throw new ArgumentNullException(nameof(buckets)); } if (auth == null) { throw new ArgumentNullException(nameof(auth)); } _Settings = settings; _Logging = logging; _Config = config; _Buckets = buckets; _Auth = auth; }
/// <summary> /// 删除七牛的文件 /// </summary> /// <param name="key"></param> public void Delete(string key) { var mac = new Mac(this.AK, this.SK); var bm = new BucketManager(mac); // 返回结果存储在result中 var res = bm.Delete(this.Bucket, key).ThrowIfException(); }
private void textBoxSK_TextChanged(object sender, EventArgs e) { string AK = this.textBoxAK.Text; string SK = this.textBoxSK.Text; if (String.IsNullOrEmpty(AK) || String.IsNullOrEmpty(SK)) { MessageBox.Show("请设置AK和SK"); this.textBoxAK.Focus(); } else { Mac mac = new Mac(AK, SK); BucketManager bucketManger = new BucketManager(mac); BucketsResult bucketResult = bucketManger.Buckets(); if (bucketResult.Code == 200) { for (int i = 0; i < bucketResult.Result.Count; i++) { comboBoxBuckets.Items.Add(bucketResult.Result[i]); } this.comboBoxBuckets.SelectedIndex = 0; } else { MessageBox.Show("认证失败,请重新设置AK和SK"); this.textBoxAK.Focus(); } } }
public async Task DeleteAfterDaysTest() { var config = new Config { Zone = Zone.ZoneCnEast }; var mac = new Mac(AccessKey, SecretKey); var bucketManager = new BucketManager(mac, config); var newKey = "qiniu-to-copy.png"; var copyRet = await bucketManager.Copy(Bucket, "qiniu.png", Bucket, newKey, true); if (copyRet.Code != (int)HttpCode.OK) { Assert.True(false, "copy error: " + copyRet); } Console.WriteLine(copyRet.ToString()); var expireRet = await bucketManager.DeleteAfterDays(Bucket, newKey, 7); if (expireRet.Code != (int)HttpCode.OK) { Assert.True(false, "deleteAfterDays error: " + expireRet); } Console.WriteLine(expireRet.ToString()); }
public override string GetItemUrl(Item item, UrlOptions options) { // call the base implementation for non-bucketed items if (!BucketManager.IsItemContainedWithinBucket(item)) { return(base.GetItemUrl(item, options)); } var bucketItem = item.GetParentBucketItemOrParent(); // is this item a bucket? if (bucketItem == null || !bucketItem.IsABucket()) { return(base.GetItemUrl(item, options)); } var bucketUrl = base.GetItemUrl(bucketItem, options); if (options.AddAspxExtension) { bucketUrl = bucketUrl.Replace(".aspx", string.Empty); } var name = item.Name; if (options.EncodeNames) { name = MainUtil.EncodePath(item.Name, '/'); } bucketUrl = FileUtil.MakePath(bucketUrl, name); // reutrn url as bucket-name/item-name return(bucketUrl + (options.AddAspxExtension ? ".aspx" : string.Empty)); }
/// <summary> /// init the bucket manager /// </summary> private void initBucketManager() { this.account = Account.TryLoadAccount(); if (string.IsNullOrEmpty(account.AccessKey) || string.IsNullOrEmpty(account.SecretKey)) { Log.Info("account info not set"); this.SettingsErrorTextBlock.Text = "请返回设置 AK 和 SK"; return; } Mac mac = new Mac(this.account.AccessKey, this.account.SecretKey); Config config = new Config(); if (this.domains != null && !string.IsNullOrEmpty(domains.RsDomain)) { Qiniu.Storage.Config.DefaultRsHost = domains.RsDomain; config.Zone = new Zone { RsHost = domains.RsDomain, }; } else { Qiniu.Storage.Config.DefaultRsHost = "rs.qiniu.com"; config.Zone = Zone.ZONE_CN_East; } this.bucketManager = new BucketManager(mac, config); }
/// <summary> /// Determine the Destination Folder of the item if it is to be automatically categorized. /// </summary> /// <returns>The newly created Item.</returns> protected override Item DoExecute() { if (this.CanAddToBucket() && this.TemplateId != Config.BucketTemplateId) { Item newDestination = BucketManager.CreateAndReturnDateFolderDestination(this.Destination, DateTime.Now); newDestination = newDestination.Database.GetItem(newDestination.ID, this.Destination.Language); if (newDestination != null && !newDestination.Uri.Equals(this.Destination.Uri)) { EventResult eventResult = Event.RaiseEvent("item:bucketing:adding", new object[] { this.NewId, this.ItemName, this.TemplateId, newDestination }, this); if (eventResult.Cancel) { Log.Info(string.Format("Event {0} was cancelled", "item:bucketing:adding"), this); return(null); } Item item = Nexus.DataApi.AddFromTemplate(this.TemplateId, newDestination, this.ItemName, this.NewId); if (item.IsNotNull()) { item.Editing.BeginEdit(); item["__BucketParentRef"] = this.Destination.ID.ToString(); item.Editing.EndEdit(); this.SetLocation(item); } Event.RaiseEvent("item:bucketing:added", new object[] { item }, this); return(item); } } return(base.DoExecute()); }
protected void OnItemSaved(object sender, System.EventArgs args) { if ((args != null)) { Item item = Event.ExtractParameter(args, 0) as Item; Assert.IsNotNull(item, "No item in parameters"); ID parentID = item.ParentID; if (BucketManager.IsItemContainedWithinBucket(item)) { parentID = item.GetParentBucketItemOrParent().ParentID; } IHasExternalId i = item.GlassCast <IHasExternalId>(); if (i != null && !string.IsNullOrEmpty(i.ExternalId)) { string prefix = i.TemplateId.GetMatchingPrefix(); if (IDTable.GetID(prefix, i.ExternalId) == null) { IDTable.Add(prefix, i.ExternalId, item.ID, parentID); } } else if (parentID.Equals(RebootConstants.ImageRootID)) { string prefix = RebootConstants.ImageItemPrefix; if (IDTable.GetID(prefix, item.Name) == null) { IDTable.Add(prefix, item.Name, item.ID, parentID); } } } }
public new void Execute(CopyItemsArgs args) { Event.RaiseEvent("item:bucketing:copying", args, this); Assert.ArgumentNotNull(args, "args"); var items = GetItems(args); Item currentItem = null; if (items[0].IsNotNull()) { currentItem = items[0]; } Error.AssertItem(items[0], "Item"); var database = GetDatabase(args); var topParent = database.GetItem(args.Parameters["destination"]); if (BucketManager.IsBucket(topParent)) { Shell.Applications.Dialogs.ProgressBoxes.ProgressBox.Execute("Copying Items", "Copying Items", Images.GetThemedImageSource("Business/16x16/chest_add.png"), this.StartProcess, new object[] { currentItem, BucketManager.CreateAndReturnDateFolderDestination(topParent, DateTime.Now), true }); if (currentItem.IsNotNull()) { Log.Info("Item " + currentItem.ID + " has been copied to another bucket", this); } Event.RaiseEvent("item:bucketing:copied", args, this); args.AbortPipeline(); } }
/// <summary> /// 使用stat模拟操作来检查Account是否正确 /// </summary> /// <returns></returns> private bool ValidateAccount(Account account) { Dispatcher.Invoke(new Action(delegate { this.SettingsErrorTextBlock.Text = ""; })); //check ak & sk validity Mac mac = new Mac(account.AccessKey, account.SecretKey); BucketManager bucketManager = new BucketManager(mac); int code = bucketManager.Stat("NONE_EXIST_BUCKET", "NONE_EXIST_KEY").Code; if (code == (int)HttpCode.OK || code == (int)HttpCode.BUCKET_NOT_EXIST || code == (int)HttpCode.FILE_NOT_EXIST) { Log.Info("ak & sk is valid"); Dispatcher.Invoke(new Action(delegate { this.SettingsErrorTextBlock.Text = ""; this.mainWindow.GotoHomePage(); })); } else { Log.Error("ak & sk wrong"); Dispatcher.Invoke(new Action(delegate { this.SettingsErrorTextBlock.Text = "AK 或 SK 设置不正确"; })); } return(true); }
public async Task FetchTest() { var config = new Config { Zone = Zone.ZoneCnEast }; var mac = new Mac(AccessKey, SecretKey); var bucketManager = new BucketManager(mac, config); var resUrl = "http://devtools.qiniu.com/qiniu.png"; var ret = await bucketManager.Fetch(resUrl, Bucket, "qiniu-fetch.png"); if (ret.Code != (int)HttpCode.OK) { Assert.True(false, "fetch error: " + ret); } Console.WriteLine(ret.ToString()); ret = await bucketManager.Fetch(resUrl, Bucket, null); if (ret.Code != (int)HttpCode.OK) { Assert.True(false, "fetch error: " + ret); } Console.WriteLine(ret.ToString()); }
/// <summary> /// 删除远端文件 /// </summary> /// <param name="filename">按文件名前缀保留搜索结果</param> /// <returns></returns> private Boolean DelFile(string filename) { BucketManager bm = new BucketManager(mac); string marker = ""; // 首次请求时marker必须为空 string delimiter = null; // 目录分割字符(比如"/") int limit = 100; // 最大值1000 // 返回结果存储在items中 List <FileDesc> items = new List <FileDesc>(); // 由于limit限制,可能需要执行多次操作 // 返回值中Marker字段若非空,则表示文件数超过了limit ListFilesResult list = bm.listFiles(Utils.bucket, filename, marker, limit, delimiter); List <FileDesc> fileList = list.Items; if (fileList != null) { foreach (FileDesc f in fileList) { var result = bm.delete(Utils.bucket, f.Key); if (result.ResponseInfo.StatusCode == 200) { return(true); } else { return(false); } } } return(true); }
public async Task ListBucketTest() { var config = new Config { Zone = Zone.ZoneCnEast }; var mac = new Mac(AccessKey, SecretKey); var bucketManager = new BucketManager(mac, config); var prefix = ""; var delimiter = ""; var limit = 100; var marker = ""; do { var listRet = await bucketManager.ListFiles(Bucket, prefix, marker, limit, delimiter); if (listRet.Code != (int)HttpCode.OK) { Assert.True(false, "list files error: " + listRet); } Console.WriteLine(listRet.ToString()); marker = listRet.Result.Marker; } while (!string.IsNullOrEmpty(marker)); }
public void Process(object sender, EventArgs args) { Assert.ArgumentNotNull(sender, "sender"); Assert.ArgumentNotNull(args, "args"); Item savedItem = Event.ExtractParameter(args, 0) as Item; Assert.IsNotNull(savedItem, "saved item can not be null"); if (savedItem == null) { Log.Error("XBlog error creating item", this); return; } if (!savedItem.Database.Name.Equals("master", StringComparison.InvariantCultureIgnoreCase)) { return; } if (!BucketManager.IsItemContainedWithinBucket(savedItem)) { Log.Debug("Item {0} is not contained in a bucket", savedItem); return; } Item bucketItem = savedItem.GetParentBucketItemOrParent(); if (!BucketManager.IsBucket(bucketItem)) { return; } BucketManager.MoveItemIntoBucket(savedItem, bucketItem); }
public async Task MoveTest() { var config = new Config { Zone = Zone.ZoneCnEast }; var mac = new Mac(AccessKey, SecretKey); var bucketManager = new BucketManager(mac, config); var newKey = "qiniu-to-copy.png"; var copyRet = await bucketManager.Copy(Bucket, "qiniu.png", Bucket, newKey, true); if (copyRet.Code != (int)HttpCode.OK) { Assert.True(false, "copy error: " + copyRet); } Console.WriteLine(copyRet.ToString()); var moveRet = await bucketManager.Move(Bucket, newKey, Bucket, "qiniu-move-target.png", true); if (moveRet.Code != (int)HttpCode.OK) { Assert.True(false, "move error: " + moveRet); } Console.WriteLine(moveRet.ToString()); }
public ActionResult GetShowsForToday() { var list = new List <PlanEvent>(); var sc = new SitecoreContext(); var itemBuckets = Sitecore.Configuration.Factory.GetDatabase("master").GetItem("/sitecore/content/EPG/Sections/PlanBuckets/AsiaPlan/"); if (itemBuckets != null && BucketManager.IsBucket(itemBuckets)) { using (var searchContext = ContentSearchManager.GetIndex("sitecore_master_index").CreateSearchContext()) { var result = searchContext.GetQueryable <SearchResultItem>().Where(x => x.Path.Contains("Sections/PlanBuckets/AsiaPlan/") && x.TemplateId == new ID("{50B06575-9906-4B50-8E63-3E8BBEF1F858}")); if (result != null) { foreach (var item in result) { list.Add(sc.Cast <PlanEvent>(item.GetItem())); } } } } if (list.Count > 0) { string today = DateTime.Now.ToString("dd/MM/yyyy");//9/1/2015" // today = "01/12/2017"; //get shows after today 12:00 AM IEnumerable <PlanEvent> elist = list.Where(x => DateTime.ParseExact(x.BroadcastDate, "dd/MM/yyyy", null).CompareTo(DateTime.ParseExact(today, "dd/MM/yyyy", null)) > 0); list = new List <PlanEvent>(elist); //sort them in ascending list.Sort((date1, date2) => DateTime.ParseExact(date1.BroadcastDate + " " + date1.PlanTime, "dd/MM/yyyy HH:mm", null).CompareTo(DateTime.ParseExact(date2.BroadcastDate + " " + date2.PlanTime, "dd/MM/yyyy HH:mm", null))); int a = list.Count; } return(View(list)); }
// Keeps only one sorting algorithm manager active private SortAlgorithmManager SortingAlgorithmManager(string sortAlgorithm) { switch (sortAlgorithm) { case Util.BUBBLE_SORT: return(GetComponentInChildren <BubbleSortManager>()); case Util.INSERTION_SORT: return(GetComponentInChildren <InsertionSortManager>()); case Util.BUCKET_SORT: int numberOfbuckets = sortSettings.NumberOfBuckets; BucketSortManager bucketSortManager = GetComponentInChildren <BucketSortManager>(); bucketSortManager.NumberOfBuckets = numberOfbuckets; BucketManager bucketManager = GetComponentInChildren <BucketManager>(); // Move to BucketSortManager bucketManager.InitBucketManager(numberOfbuckets); bucketManager.InitManager(); return(bucketSortManager); case Util.MERGE_SORT: return(GetComponentInChildren <MergeSortManager>()); default: Debug.LogError("Sorting algorithm '" + sortAlgorithm + "' not found."); break; } return(null); }
public void GetThumbnailPath(PlanEvent obj) { if (!string.IsNullOrWhiteSpace(obj.PlanTitleID)) { var itemBuckets = db.GetItem("/sitecore/content/EPG/Sections/PlanBuckets/AsiaPlan/"); if (itemBuckets != null && BucketManager.IsBucket(itemBuckets)) { using (var searchContext = ContentSearchManager.GetIndex("sitecore_master_index").CreateSearchContext()) { var result = searchContext.GetQueryable <SearchResultItem>().Where(x => x.Name.Equals(obj.PlanTitleID) && x.TemplateId == new ID("{50B06575-9906-4B50-8E63-3E8BBEF1F858}")).FirstOrDefault(); if (result != null) { Item item = result.GetItem(); if (item == null) { return; } var portraitimage = (Sitecore.Data.Fields.ImageField)item.Fields["Portrait Image"]; var landscape = (Sitecore.Data.Fields.ImageField)item.Fields["Landscape Image"]; if (portraitimage != null && (portraitimage).MediaItem != null) { string imagepath = ConvertSitecorePathtoMediaMasterPath((portraitimage).MediaItem.Paths.ContentPath); obj.PortraitImage = imagepath; } if (landscape != null && (landscape).MediaItem != null) { string imagepath = ConvertSitecorePathtoMediaMasterPath((landscape).MediaItem.Paths.ContentPath); obj.LandscapeImage = imagepath; } } } } } }
public Item Duplicate(ClientPipelineArgs args, Item sourceItem) { Item result = null; if (sourceItem == null) { SheerResponse.Alert(Translate.Text("Item not found.")); } else { Item parent = sourceItem.Parent; if (parent == null) { SheerResponse.Alert(Translate.Text("Cannot duplicate the root item.")); } else if (parent.Access.CanCreate()) { Log.Audit(this, "Duplicate item: {0}", new string[1] { AuditFormatter.FormatItem(sourceItem) }); var bucketItemOrSiteRoot = sourceItem.GetParentBucketItemOrSiteRoot(); if (BucketManager.IsBucket(bucketItemOrSiteRoot) && BucketManager.IsBucketable(sourceItem)) { if (!EventDisabler.IsActive) { EventResult eventResult = Event.RaiseEvent("item:bucketing:duplicating", args, this); if (eventResult != null && eventResult.Cancel) { Log.Info(string.Format("Event {0} was cancelled", "item:bucketing:duplicating"), this); args.AbortPipeline(); return(null); } } result = Context.Workflow.DuplicateItem(sourceItem, args.Parameters["name"]); Item destination = CreateAndReturnBucketFolderDestination(bucketItemOrSiteRoot, DateUtil.ToUniversalTime(DateTime.Now), sourceItem); if (!IsBucketTemplateCheck(sourceItem)) { destination = bucketItemOrSiteRoot; } ItemManager.MoveItem(result, destination); if (!EventDisabler.IsActive) { Event.RaiseEvent("item:bucketing:duplicated", args, this); } } else { result = Context.Workflow.DuplicateItem(sourceItem, args.Parameters["name"]); } } else { SheerResponse.Alert(Translate.Text("You do not have permission to duplicate \"{0}\".", sourceItem.DisplayName)); } } args.AbortPipeline(); return(result); }
public void SetThumbnailPath(string PlanTitleId, Item mi, string type) { if (!string.IsNullOrWhiteSpace(PlanTitleId)) { var itemBuckets = db.GetItem("/sitecore/content/EPG/Sections/PlanBuckets/AsiaPlan/"); if (itemBuckets != null && BucketManager.IsBucket(itemBuckets)) { using (var searchContext = ContentSearchManager.GetIndex("sitecore_master_index").CreateSearchContext()) { var result = searchContext.GetQueryable <SearchResultItem>().Where(x => x.Name.Equals(PlanTitleId) && x.TemplateId == new ID("{50B06575-9906-4B50-8E63-3E8BBEF1F858}")).FirstOrDefault(); if (result != null && mi != null) { using (new SecurityDisabler()) { Item item = result.GetItem(); item.Editing.BeginEdit(); if (type.Equals("portrait")) { ((Sitecore.Data.Fields.ImageField)item.Fields["Portrait Image"]).MediaID = mi.ID; // ((Sitecore.Data.Fields.ImageField)item.Fields["Portrait Image"]).UpdateLink(mi.Links.GetAllLinks()[0]); } else { ((Sitecore.Data.Fields.ImageField)item.Fields["Landscape Image"]).MediaID = mi.ID; // ((Sitecore.Data.Fields.ImageField)item.Fields["Landscape Image"]).Value = mi.Parent.Paths.FullPath; } item.Editing.EndEdit(); } } } } } }
private void Test() { try { Mac mac = new Mac(QINIUYUN.Properties.Settings.Default.AK, QINIUYUN.Properties.Settings.Default.SK); BucketManager bm = new BucketManager(mac); string bucket = "data"; // 目标空间 string marker = ""; // 首次请求时marker必须为空 string prefix = null; // 按文件名前缀保留搜索结果 string delimiter = null; // 目录分割字符(比如"/") int limit = 100; // 最大值1000 // 返回结果存储在items中 List <FileDesc> items = new List <FileDesc>(); do { var result = bm.listFiles(bucket, prefix, marker, limit, delimiter); marker = result.Marker; if (result.Items != null) { items.AddRange(result.Items); } } while (!string.IsNullOrEmpty(marker)); foreach (var item in items) { System.Console.WriteLine(item.ToString()); } } catch (Exception ex) { Console.WriteLine(ex.ToString()); throw; } }
/// <summary> /// Given a datasource from a Sitecore Control, this will parse the string to turn it into a bucket query and to run the query as well using the Context Item /// </summary> public static List <SitecoreItem> ParseDataSourceQueryForItems(string dataSource, int pageNumber, int pageSize, out int hits) { hits = 0; int hitCount = hits; return(BucketManager.FullSearch(ParseDataSourceQuery(dataSource), out hitCount, pageNumber: pageNumber, pageSize: pageSize).ToList()); }
public void DeleteFile(string fileName, string accessKey, string secretKey, string bucket) { Mac mac = new Mac(accessKey, secretKey); BucketManager bm = new BucketManager(mac); bm.Delete(bucket, fileName); }
/// <summary> /// 删除云端图片 /// </summary> /// <param name="filename">文件名称</param> /// <returns></returns> public static CloudFile Delete(string filename) { var model = new CloudFile(); try { Mac mac = new Mac(Ak, Sk); // 设置存储区域 Config.SetZone(ZoneID.CN_North, false); BucketManager bucketManager = new BucketManager(mac); // 文件名 filename = filename.Replace(domain, ""); HttpResult deleteRet = bucketManager.Delete(Bucket, filename); model.Code = deleteRet.Code; if (model.Code != 200) { model.Message = deleteRet.Text; } } catch (Exception ex) { model.Code = 500; model.Message = ex.Message; } return(model); }
public static string RemoteFileStat(Mac iMac, string iBucket, string iFileName) { BucketManager lBktMgr = new BucketManager(iMac); // Qiniu.Storage.Model.StatResult lRslt = null; //StringBuilder lOpsb = new StringBuilder(); HttpResult result = null; result = lBktMgr.batch("op=/stat/" + StringUtils.encodedEntry(iBucket, iFileName)); // lRslt = lBktMgr.stat(iBucket, iFileName); if (result == null) { return(string.Empty); } StatResponse lStatResponse = null; lStatResponse = JsonConvert.DeserializeObject <StatResponse>(result.Response); if (lStatResponse.CODE == 200) { return(lStatResponse.DATA.hash); } else { return(String.Empty); } }