示例#1
0
        /// <summary>
        /// Creates a URL that gives access to the provided key.
        /// </summary>
        /// <param name="bucketName">The name of the bucket</param>
        /// <param name="key">The key to share</param>
        /// <param name="raw">No landing page, directly access the file</param>
        /// <param name="is_public">Wether objects can be read using only the access_key_id</param>
        /// <returns></returns>
        public string CreateShareURL(string bucketName, string key, bool raw, bool is_public)
        {
            using (EdgeConfig edgeConfig = new EdgeConfig {
                auth_service_address = "auth.storjshare.io:7777"
            })
                using (EdgeRegisterAccessOptions edgeRegisterAccessOptions = new EdgeRegisterAccessOptions {
                    is_public = is_public
                })
                    using (EdgeShareURLOptions edgeShareURLOptions = new EdgeShareURLOptions {
                        raw = raw
                    })
                    {
                        using (var registeredAccess = SWIG.storj_uplink.edge_register_access(edgeConfig, _access, edgeRegisterAccessOptions))
                        {
                            if (registeredAccess.error != null && !string.IsNullOrEmpty(registeredAccess.error.message))
                            {
                                throw new AccessShareException(registeredAccess.error.message);
                            }

                            using (var shareUrl = SWIG.storj_uplink.edge_join_share_url(registeredAccess.credentials.endpoint, registeredAccess.credentials.access_key_id, bucketName, key, edgeShareURLOptions))
                            {
                                if (shareUrl.error != null && !string.IsNullOrEmpty(shareUrl.error.message))
                                {
                                    throw new AccessShareException(shareUrl.error.message);
                                }

                                return(shareUrl.string_.Replace("gateway.eu1", "link").Replace("gateway.us1", "link").Replace("gateway.ap1", "link"));
                            }
                        }
                    }
        }
示例#2
0
        public static UplinkStringResult edge_join_share_url(string baseURL, string accessKeyID, string bucket, string key, EdgeShareURLOptions options)
        {
            UplinkStringResult ret = new UplinkStringResult(storj_uplinkPINVOKE.edge_join_share_url(new storj_uplinkPINVOKE.SWIGStringMarshal(baseURL).swigCPtr, new storj_uplinkPINVOKE.SWIGStringMarshal(accessKeyID).swigCPtr, new storj_uplinkPINVOKE.SWIGStringMarshal(bucket).swigCPtr, new storj_uplinkPINVOKE.SWIGStringMarshal(key).swigCPtr, EdgeShareURLOptions.getCPtr(options)), true);

            return(ret);
        }
示例#3
0
 internal static global::System.Runtime.InteropServices.HandleRef getCPtr(EdgeShareURLOptions obj)
 {
     return((obj == null) ? new global::System.Runtime.InteropServices.HandleRef(null, global::System.IntPtr.Zero) : obj.swigCPtr);
 }