Пример #1
0
        public Int64 uploadLink(UploadLinkQuery query)
        {
            var url = apiUrl + "/api/upload/link.xml";

            var signature = new UploadSignature();

            signature = getUploadSignature();

            var data = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
                       "<vzaar-api>" +
                       "<link_upload>" +
                       "<key>" + signature.key + "</key>" +
                       "<guid>" + signature.guid + "</guid>" +
                       "<url>" + query.url + "</url>" +
                       "<encoding_params>" +
                       "<title>" + query.title + "</title>" +
                       "<description>" + query.description + "</description>" +
                       "<size_id>" + query.size_id + "</size_id>" +
                       "<bitrate>" + query.bitrate + "</bitrate>" +
                       "<width>" + query.width + "</width>" +
                       "<transcoding>" + query.transcoding.ToString().ToLower() + "</transcoding>" +
                       "</encoding_params>" +
                       "</link_upload>" +
                       "</vzaar-api>";

            var response = executeRequest(url, "POST", data);

            var doc = new XmlDocument();

            doc.LoadXml(response);
            var videoId = Int64.Parse(doc.SelectSingleNode("//id").InnerText);

            return(videoId);
        }
Пример #2
0
        public UploadSignature getUploadSignature(string redirectUrl)
        {
            var url = apiUrl + "/api/videos/signature";

            var oAuth = new OAuthBase();

            redirectUrl = oAuth.UrlEncode(redirectUrl);

            if (enableFlashSupport)
            {
                apiUrl += "?flash_request=true";
            }

            if (redirectUrl != String.Empty)
            {
                if (!enableFlashSupport)
                {
                    url += "?success_action_redirect=" + redirectUrl;
                }
                else
                {
                    url += "&success_action_redirect=" + redirectUrl;
                }
            }

            var response = executeRequest(url);

            var signature = new UploadSignature(response);

            return(signature);
        }
Пример #3
0
        public UploadSignature getUploadSignature()
        {
            var url = apiUrl + "/api/videos/signature";

            if (enableFlashSupport)
            {
                apiUrl += "?=flash_request=true";
            }

            var response = executeRequest(url);


            var signature = new UploadSignature(response);

            return(signature);
        }
Пример #4
0
        public string uploadVideo(string path)
        {
            var signature = new UploadSignature();

            signature = getUploadSignature();

            var url = "https://" + signature.bucket + ".s3.amazonaws.com/";

            var parameters = new NameValueCollection
            {
                { "key", signature.key },
                { "AWSAccessKeyId", signature.accessKeyId },
                { "acl", signature.acl },
                { "policy", signature.policy },
                { "signature", signature.signature },
                { "success_action_status", "201" }
            };

            var response = HttpUploadFile(url, path, "file", "application/octet-stream", parameters);

            return(signature.guid);
        }
Пример #5
0
        public Int64 uploadLink(UploadLinkQuery query)
        {
            var url = apiUrl + "/api/upload/link.xml";

            var signatureQuery = new UploadSignatureQuery();
            signatureQuery.url = query.url;
            signatureQuery.multipart = true;

            var signature = new UploadSignature();

            signature = getUploadSignature(signatureQuery);

            var data = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" +
                       "<vzaar-api>" +
                            "<link_upload>" +
                                "<key>" + signature.key + "</key>" +
                                "<guid>" + signature.guid + "</guid>" +
                                "<url>" + HttpUtility.HtmlEncode(query.url) + "</url>" +
                                "<encoding_params>" +
                                    "<title>" + HttpUtility.HtmlEncode(query.title) + "</title>" +
                                    "<description>" + HttpUtility.HtmlEncode(query.description) + "</description>" +
                                    "<size_id>" + query.size_id + "</size_id>" +
                                    "<bitrate>" + query.bitrate + "</bitrate>" +
                                    "<width>" + query.width + "</width>" +
                                    "<transcoding>" + query.transcoding.ToString().ToLower() + "</transcoding>" +
                                "</encoding_params>" +
                            "</link_upload>" +
                       "</vzaar-api>";

            var response = executeRequest(url, "POST", data);

            var doc = new XmlDocument();
            doc.LoadXml(response);
            var videoId = Int64.Parse(doc.SelectSingleNode("//id").InnerText);

            return videoId;
        }
Пример #6
0
        private string simpleUpload(string path, UploadSignature signature)
        {
            var parameters = new NameValueCollection
                                 {
                                     {"AWSAccessKeyId", signature.accessKeyId},
                                     {"signature", signature.signature},
                                     {"acl", signature.acl},
                                     {"bucket", signature.bucket},
                                     {"policy", signature.policy},
                                     {"success_action_status", "201"},
                                     {"key", signature.key},
                                     {"chunks", "0"},
                                     {"chunk", "0"},
                                     {"x-amz-meta-uploader", uploader}
                                 };

            var fileStream = new FileStream(path, FileMode.Open, FileAccess.Read);
            var guid = HttpUploadFile(signature.uplodHostname, parameters, fileStream, path);
            fileStream.Close();
            return guid;
        }
Пример #7
0
        /// <summary>
        /// Upload video from local drive in multiple chunks
        /// </summary>
        /// <param name="path">Path of the video file to be uploaded</param>
        /// <param name="signature">Object of type <see cref="UploadSignature"/></param>
        /// <returns> GUID string of thhe file uploaded</returns>
        private string multipartUpload(string path, UploadSignature signature)
        {
            string guid = null;
            var fileInfo = new FileInfo(path);
            long filesize = fileInfo.Length;
            int chunks = (int)Math.Ceiling((double)filesize / chunkSyzeInBytes(signature.chunkSize));
            var buffer = new byte[chunkSyzeInBytes("5mb")];
            int bytesRead;
            var fileStream = new FileStream(path, FileMode.Open, FileAccess.Read);
            int chunk = 0;
            while ((bytesRead = fileStream.Read(buffer, 0, buffer.Length)) != 0)
            {
                MemoryStream ms = new MemoryStream(buffer, 0, bytesRead);

                string key = signature.key.Replace("${filename}", fileInfo.Name) + "." + chunk;
                var parameters = new NameValueCollection
                                 {
                                     {"AWSAccessKeyId", signature.accessKeyId},
                                     {"signature", signature.signature},
                                     {"acl", signature.acl},
                                     {"bucket", signature.bucket},
                                     {"policy", signature.policy},
                                     {"success_action_status", "201"},
                                     {"key", key},
                                     {"chunks", chunks.ToString()},
                                     {"chunk", chunk.ToString()},
                                     {"x-amz-meta-uploader", uploader}
                                 };

                guid = HttpUploadFile(signature.uplodHostname, parameters, ms, path);
                chunk++;
                ms.Close();
                ms.Dispose();
            }
            fileStream.Close();

            return guid;
        }
Пример #8
0
        /// <summary>
        /// Upload video from local drive to vzaar upload host
        /// </summary>
        /// <param name="path">Path of the video file to be uploaded</param>
        /// <returns>GUID of the file uploaded</returns>
        public string uploadVideo(string path)
        {
            var query = new UploadSignatureQuery();
            query.path = path;
            var fileInfo = new FileInfo(path);
            query.fileSize = fileInfo.Length;
            query.filename = fileInfo.Name;
            query.multipart = true;
            var signature = new UploadSignature();

            signature = getUploadSignature(query);
            if (String.IsNullOrEmpty(signature.chunkSize))
            {
                return simpleUpload(path, signature);
            }

            return multipartUpload(path, signature);  
        }
Пример #9
0
        public UploadSignature getUploadSignature(UploadSignatureQuery query)
        {
            var url = apiUrl + "/api/v1.1/videos/signature";
            var oAuth = new OAuthBase();
            if (String.IsNullOrEmpty(query.path) && String.IsNullOrEmpty(query.url))
            {
                throw new ArgumentException("path or url must be provided");
            }

            if (!String.IsNullOrEmpty(query.path))
            {
                url += "?path=" + oAuth.UrlEncode(query.path);
                if (!String.IsNullOrEmpty(query.filename))
                {
                    url += "&filename=" + oAuth.UrlEncode(query.filename);
                }
                if (query.fileSize > 0)
                {
                    url += "&filesize=" + query.fileSize;
                }
            }
            else
            {
                url += "?url=" + oAuth.UrlEncode(query.url);
            }

            if (enableFlashSupport)
            {
                url += "&flash_request=true";
            }
            if (!String.IsNullOrEmpty(query.redirectUrl))
            {
                url += "&success_action_redirect=" + oAuth.UrlEncode(query.redirectUrl);
            }

            if (query.multipart)
            {
                url += "&multipart=true";
                url += "&uploader=" + uploader;
            }

            UploadSignature signature = null;

            var response = executeRequest(url);
            signature = new UploadSignature(response);

            return signature;
        }
Пример #10
0
        public string uploadVideo ( string path )
        {
            var signature = new UploadSignature();

            signature = getUploadSignature();

            var url = "https://" + signature.bucket + ".s3.amazonaws.com/";

            var parameters = new NameValueCollection
                                 {
                                     {"key", signature.key},
                                     {"AWSAccessKeyId", signature.accessKeyId},
                                     {"acl", signature.acl},
                                     {"policy", signature.policy},
                                     {"signature", signature.signature},
                                     {"success_action_status", "201"}
                                 };

            var response = HttpUploadFile( url, path, "file", "application/octet-stream", parameters );

            return signature.guid;
        }
Пример #11
0
        public UploadSignature getUploadSignature ( string redirectUrl )
        {
            var url = apiUrl + "/api/videos/signature";

            var oAuth = new OAuthBase();
            redirectUrl = oAuth.UrlEncode( redirectUrl );

            if (enableFlashSupport)
            {
                url += "?flash_request=true";
            }

            if (redirectUrl != String.Empty)
            {
                if (!enableFlashSupport)
                {
                    url += "?success_action_redirect=" + redirectUrl;
                }
                else
                {
                    url += "&success_action_redirect=" + redirectUrl;
                }
            }

            var response = executeRequest( url );

            var signature = new UploadSignature( response );
            return signature;
        }
Пример #12
0
        public UploadSignature getUploadSignature ()
        {
            var url = apiUrl + "/api/videos/signature";

            if (enableFlashSupport)
            {
                url += "?flash_request=true";
            }

            var response = executeRequest( url );


            var signature = new UploadSignature( response );
            return signature;
        }