Esempio n. 1
0
        public async Task Authorize(string username, string password)
        {
            using (var keycloak = new KeyCloalClient())
            {
                var token = await keycloak.GetToken(username, password);

                DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.access_token);
            }
        }
        public static async Task <Guid> AddBlob(this OsdrTestHarness harness, string bucket, string fileName, IDictionary <string, object> metadata = null)
        {
            var path = Path.Combine(Directory.GetCurrentDirectory(), "Resources", fileName);

            if (!System.IO.File.Exists(path))
            {
                throw new FileNotFoundException(path);
            }

            var keycloak = new KeyCloalClient();

            var token = await keycloak.GetToken("john", "qqq123");

            HttpClient blobStorage = new HttpClient();

            blobStorage.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Bearer", token.access_token);
            var blobStorateUri = new Uri("http://localhost:18006/api/blobs/");

            //attachments
            var requestContent = new MultipartFormDataContent();

            if (metadata != null && metadata.Any())
            {
                foreach (var key in metadata.Keys)
                {
                    requestContent.Add(new StringContent(metadata[key].ToString()), key);
                }
            }

            StreamContent streamContent = new StreamContent(File.OpenRead(path));
            var           fileContent   = new ByteArrayContent(await streamContent.ReadAsByteArrayAsync());

            fileContent.Headers.ContentType = MediaTypeHeaderValue.Parse("application/octet-stream");
            requestContent.Add(fileContent, "File", fileName);

            HttpResponseMessage response = await blobStorage.PostAsync(new Uri(blobStorateUri, bucket), requestContent);

            var guids = JsonConvert.DeserializeObject <string[]>(await response.Content.ReadAsStringAsync()).Select(s => Guid.Parse(s));

            //var blobId = await harness.BlobStorage.AddFileAsync(fileName, System.IO.File.OpenRead(path), "application/octet-stream", bucket, metadata);

            return(guids.First());
        }