Beispiel #1
0
 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]);
             }
         }
     }
 }
Beispiel #2
0
        /// <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();
                            }
                        }
                    }
                }
            }
        }
Beispiel #4
0
        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());
        }
Beispiel #5
0
 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);
 }
Beispiel #6
0
        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;
        }
Beispiel #7
0
 /// <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();
 }
Beispiel #8
0
        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());
        }
Beispiel #10
0
        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));
        }
Beispiel #11
0
        /// <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());
        }
Beispiel #13
0
 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);
             }
         }
     }
 }
Beispiel #14
0
        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());
        }
Beispiel #17
0
        /// <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));
        }
Beispiel #19
0
        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));
        }
Beispiel #22
0
    // 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);
    }
Beispiel #23
0
 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;
                     }
                 }
             }
         }
     }
 }
Beispiel #24
0
        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);
        }
Beispiel #25
0
 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();
                     }
                 }
             }
         }
     }
 }
Beispiel #26
0
        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);
        }
Beispiel #29
0
        /// <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);
        }
Beispiel #30
0
        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);
            }
        }