Description
Key Learnings
- Learn the pros and cons of cloud-based file storage
- Learn how to create a new SQL Azure Storage Account
- Discover the basic code necessary to read from and write to Microsoft Azure Cloud Storage
- See examples of how cloud-based storage can benefit a variety of AutoCAD .NET add-ins
Speaker
- JWJerry WintersJerry Winters has taught at nearly every U.S.-based Autodesk University over the past 17 years primarily on topics of AutoCAD software customization using Microsoft Visual Basic for Applications (VBA) and VB.NET. He brings a unique blend of education and entertainment as he tackles what would otherwise be a dry topic. And while he reserves the week before Thanksgiving for meeting with and enjoying the company of his Autodesk friends, the rest of the year is spent with his beautiful wife of 26 years and his 9 (yes, that's 9) children in rural Lake Point, Utah, where they are occasionally found singing at community events and senior centers.
JERRY WINTERS: All right. Let's get started. My name is Jerry Winters. My company is VB CAD. My title now is grandpa. We had a grandbaby about a week ago
And this is my PowerPoint presentation. That's the leading slide, and that's the second slide. And that's it.
[AUDIENCE LAUGHS]
I'm not a big fan of PowerPoint because PowerPoint has a tendency to-- well, maybe rephrase that. At Autodesk university, I'm not a fan of PowerPoint because, frankly, if you can get the exact same experience sitting at home, by watching a recording, then why come here? And so, rather than just have a PowerPoint and read the same thing that you're reading, and all that stuff, I prefer to just show code and work that way. So, hopefully that's amenable to everybody.
You're probably already bored of PowerPoint, tired of PowerPoint at this point. It's Thursday.
Anyways. Today we're talking about taking our AutoCAD audience that needs some kind of a storage solution, and using the cloud in order to satisfy that storage solution. OK? So, we might have a variety of reasons why we might want to make files accessible.
So, the primary thing is that, with the cloud, we can make our files accessible to everyone, everywhere. While having replication, which is not the same as backup. Having replication available, as well. And doing it very inexpensive without a bunch of infrastructure and stuff like that. That's what we're talking about here. OK?
So, let's take a look. And I'll be using the handout helping us to walk us through everything today. And we're going to start by talking about the pros and cons of cloud-based storage for AutoCAD audience. OK.
Pros inexpensive startup costs. You can go home today and start for free. OK? You can create a new Azure storage account, it won't cost you anything to get started. And Microsoft, they have different promotions go on and go off and things like that, OK? So, based on whenever you happen to do this, you might get a $50 credit, or $100 credit. Right now, I think it's a $200 credit. It's what the amount is, right now. So, you can go home, get started, take what we go over today and actually try it out and use it. All right?
So, the startup cost right now is free, but even after now, the startup costs are very small because you don't have to go through the process of buying servers, buying software, having the manpower to get them installed and implemented, and all that stuff. Dealing with an additional static IP address, dealing with those kinds of things. We don't have to go through those costs, OK?
Now, one of the other pros there, is that they're globally accessible. OK? Immediately. If you have a server in your office that's already there, a physical server, and you want to make files on that server accessible to everyone, what do you have to do?
AUDIENCE: Push it.
JERRY WINTERS: Push it to what?
AUDIENCE: Push it to other servers.
JERRY WINTERS: To other servers? That are already out there?
AUDIENCE: Yeah.
JERRY WINTERS: Let's pretend you're not there, yet. Let's just pretend you just have a server, and you think to yourself, "I've got this AutoCAD add in, it would sure be nice to make these files accessible to other people". What would you have to do?
AUDIENCE: Get it through your firewall.
JERRY WINTERS: So, firewall. First thing, right? Get it to through the firewall, somehow. Are we going to use FTP or are we going to use some other kind of just a web site, that people can download from. A variety of things there, right? But getting through that firewall, how amenable are IT departments to opening up another port on the firewall? Generally, not terribly amenable to that. And for good reason, OK? So, just the fact that it's globally accessible immediately is great.
I put bragging rights on here just for fun, but when we get together with people, we talk about things and just say, "Yeah I got x number of bytes, or megabytes, or terabytes, or petabytes up on the cloud for this kind of thing". It's kind of fun and we will talk about those things, and see what other people are doing.
That's one of the benefits to coming here to Autodesk university, is we have the opportunity to meet other people in similar or even dissimilar fields, and talk about what they're doing with the technology. How we're using AutoCAD. "I'm using it this way", "Oh really? That's interesting. I'm using it this way", "Oh, that's way interesting. I should try that". So, just the fact that you're here at Autodesk university tells me that, hopefully, you're talking with other people and getting ideas from them, as well.
Can be implement it without IT department red tape. That gets back to the port issue and gets back to buying servers, and things like that. I'm not suggesting you totally completely circumvent the IT department, if that's what you have going on in your company. But it might be worth considering, as was mentioned earlier. Try it out, get your own account. Try it out, see how it works. It's not going to cost you anything. Then, bring a person or two over from other departments, have them take a look at it. And you can do that without having to go through months and months of meetings and approvals, and sign offs, and all the rest. So, the fact that we can kind of implement some things without a lot of IT department red tape is kind of nice.
Multiple geolocated options. When you create an account, you can specify where you want those files stored. I've got a friend from Alaska that's here at Autodesk university, Carl. And he deals with remote areas in Alaska. And internet in those remote areas of Alaska, if they have it, are the things that you and I joke about now. It's the 56k, you know, 14.4k. Do you remember that? K used to be-- we used the word K a lot, right? 14.4k. 56k. Right? And then, ISDN came out. Whoa, that was incredible. We're talking about whole hundred-- it was 128k, or whatever it was.
Anyways. So, just making it globally accessible makes it easier because in some areas, they don't necessarily have the ability to download at 50 megabits per second. So, the more leaps it has to take to get from point A to point B, the sorer things are.
All right. Cons. Surrendering control. I like the idea of having a box sitting in front of me that I can grab onto and shake. I like the ability to say, "I need more storage. I'm going to slap it another drive". I like that idea of having that control. I like the idea of someone saying, "Hey, I need a backup of something". "OK. No problem". I'll just plug in a thumb drive here and do that. It's in the cloud, it's out there. Can we get those files back? Of course we can. We'll be talking about that today. But sometimes it's nice just to be able to plug in a thumb drive, copy and paste, and be done with it. And we don't have those options.
Next, is performance. What is it going to be? If I have a server and I want better performance out of that server, I might get additional processors, or processors with more cores in it. I might increase the RAM, I might swap out some drives for SSD's. I've got options there. When it comes to cloud storage, I'm not quite sure what I've got, frankly. I don't know if I'm dealing with a little 8088 computer. Some of you know what that is. I don't know if I'm dealing with that, or a TRS80 a VIC20, Commodore 64. I don't know if I'm dealing with those, or if I've actually got a machine that's got a little bit of guts behind it. I don't know.
The files out there are accessible, I know that. And the bandwidth might seem to be pretty good. But in terms of the actual performance of the machine, not quite sure where that's going to be.
Last con here. Without the internet up and running, the files are inaccessible. Now, that is a worry and a concern that seems to be going away more and more, because you almost can't go anywhere, at least in the continental US, that doesn't have a Wi-Fi signal somewhere, or within walking distance of where you are.
And that in and of itself, has pros and cons. But you need to have access to the internet to be able to talk to these files here on the cloud. All right? So those are pros and cons.
Anyone have any questions about that? Or any other thoughts on pros and cons of cloud? Yes.
AUDIENCE: Is it a con something we are facing is intellectual property and security.
JERRY WINTERS: OK. So one of the cons mentioned here is intellectual property and security, there. How do we do that? How do we guarantee? So, if you have a box in your office that you're running, you have a little more sense of well-being that this is secure. Why do we know that? Because we have done the security on it, right? Is that kind of what you're thinking? But when it's out in the cloud, then you have the same, let's say a file, let's say you're worried about a file, OK? Or email. We have the same file that's in multiple locations, potentially. And who can just walk in and plug-in a thumb drive and download that file, right? What can happen there? So, that's a legitimate question and a legitimate concern.
So, the cloud companies that take care of cloud things like Microsoft, like Amazon, Google, these companies, they have two fundamental guiding principles in everything they do when it comes to the cloud. The first one is uptime, sustainability, etc. OK? Because if you live in an area where the power goes out all the time, that gets frustrating, right? And with your or my data, if the data is up, now the data is down, now the data is up, no it is down. The cloud is falling, right? It's up, it's down, it's up, it's down. If that's happening, nobody's going to use it. So, that's the first thing, is keeping things up and running.
And the second one has got to be security. Now, I don't have any insider knowledge on exactly what they do and how they do it to keep things secure. We'll talk today about things that you can do to keep things secure on the cloud. But, that has to be of paramount importance to them, to keep things secure. I think more and more what's going to happen, is people will just become a little bit more comfortable with the idea.
Simple example, Facebook. You know, x number of years ago, and that will be different from person to person. It was like, "I'm not going to put pictures of my kids on Facebook, there's creeps out there". Right? But as time goes on, people get used to the idea of it happening. They realize that, generally, their kids are not being targeted because they have a picture up on Facebook of them. Things like that. So, culturally, we're just going to naturally become more accepting of them.
AUDIENCE: [INAUDIBLE] as well.
JERRY WINTERS: Yes, yes.
AUDIENCE: [INAUDIBLE] Intel and Google, and Tesla. They don't want their information on the cloud.
JERRY WINTERS: Understood, understood.
AUDIENCE: And if they don't want it, what can happen?
JERRY WINTERS: Well, and frankly, Microsoft doesn't want their stuff on the cloud, either. Right? I mean, they've got their own cloud storage platform here, and they don't want their stuff on the cloud. So, yeah. How do you deal with that? You assess people's comfort level, and if they're not there, I guess you don't do it. You come up with other mechanisms. But one thing you can do, is do an honest, sincere evaluation of security, as it is.
I have clients that have raised concerns about security. And I walk into their office and take a look around. And I'll know, if I have a thumb-drive in my hand here, and I have 30 seconds, I can get to someone's computer, copy a file to my thumb drive and get back to the front office without anyone seeing me. 30 seconds. If I go in at 7 o'clock in the morning, before people arrive for work, the front door is probably unlocked, and I can probably walk in and pick up a physical computer, and walk out the front door with it.
And so, security. Helping people to understand what that really means, yes. It's easy to say, "What about security?" it's very easy to say that, but helping people to appreciate what that really means, and getting the right people to appreciate that, is a challenge, and it's an ongoing challenge, it will continue to be a challenge until everyone adopts it. Which will probably never happen. So, it's an excellent question to raise. And, yeah, it's out there. It's a legitimate question.
AUDIENCE: I think one of the other plus, as far as pros goes, most of the internet, many companies have, they have a larger down than up. So, once you're close to a file where, let's say you are sharing it, you can take that at one time. You can upload it to a central place. At that point, your network is no longer [? taking a hit. ?] As opposed to if you distributed that file to 15 people, all 15 are-- you are uploading from the network, which is generally at slower speed.
JERRY WINTERS: Great thought. Great thought. So, just for recording purposes here. A benefit to the cloud is you upload the file once, and if 15 people want to download it at the same time, your company is not taking a hit on their bandwidth. Because bandwidth, generally speaking, your download speeds are faster than your upload speeds. And, so a great thought. Great point on that.
All right, should we move on? Let's move on.
Creating a new storage account for SQL Azure is as simple as Google searching Azure storage account. Let's just do a quick little search on that, here. Come here. Come here.
And, generally speaking, if you do that, the first thing that's going to come up is an ad from Microsoft. This is one time when it's actually useful to see that ad from Microsoft, OK? So, we click on that. And then, it's going to come in and say, OK, look at this. Hey, free account. Look at that. And so, it's giving to us information, credit container hosting solution, et cetera, et cetera, et cetera.
Let's click on Free Account, and see what happens next. So, here's what I was mentioning before, about the actual bonuses here. Today, as of this recording, we got a $200 credit. Now, they're not going to send you a gift card in the mail of $200. But, basically, what they're saying is, you've got $200 worth of processing time, storage space available to you without you spending a penny. OK. So that's pretty good stuff.
So what you do is, you click on the Start Free here, and it comes in and asks you to sign in with your Microsoft account. If you don't have one, it will ask you to create one. And then, you're good to go. All right? That's about it. That creates the account. After that, is when the fun actually happens and starts. And so, that's what we're going to jump into next, here.
Now, we're going to be using an account I already have set up here, just to keep things simple for us. We saw that. All right.
Once we log into our account, if we want to create a new storage account, we're going to click over here on New, and pick storage. Then, we're going to pick the storage account that we actually want. OK? That's what we're going to do. So we're going to pretend for a moment that's already happened. Because it has. When we create a new storage account, it wants to know what do you want to name this thing. The store account I created here is AU2016.
Now, if you are fast, you'll be able to go home and actually use my storage account here, if you'd like. OK? If you want to try uploading some files, downloading some files. That kind of a thing. We're going to see in a little bit, there's going to be a hash key that's there. So just email me and say, "Hey, what's the current hash key?". I'll reply to you and give that to you. And so, even if you don't want to create your own storage account you can kind of mess with this a little bit, if you want to try the code out. OK?
So, it needs a name. It needs a deployment model. The account kind, general purpose, there's the standard, premium. Quick hint, premium costs more than standard. Replication, Read access, georedundant. So, just some various things here, pay as you go subscription. Storage location, right now, using West US. OK. If you're over in Europe, you don't want to use West US. If you're creating a storage account specifically for another part of the world, use an account that's generalized over there.
Now, this says West US. What does that tell us? Is it in California? I don't know. Oregon? Don't know. Washington? Who knows. It's somewhere in West US. Yes?
AUDIENCE: Can admin change after you set up? So, if you want to set it up, work on it here, and then-- but it is for someone in Europe, can they just change?
JERRY WINTERS: Great question. So, yeah. These things can be changed pretty much at any time. Great question.
And after we do all that, we click on this Create button here. We click on the Create button and then we wait.
Now, while we're waiting, you're going to see this little thing pop up here that says Deployment Started. It might say the time of day that it is. And you're going to see this little thing scrolling across here. It takes about a minute or so. Before that new account will show up here. And this. Please ignore this storage account here. All right? [LAUGHS] Wrong conference here to have that one on there.
And this is what we get. Once we have a storage account set up, we can now go in and create these things called Containers. Now, we'll be talking about two different kinds of containers today. We will be talking about file containers and blob containers. All right?
So, a file container contains files. A blob container contains what?
AUDIENCE: [INAUDIBLE]
JERRY WINTERS: Glad you asked. It might be a binary large object. It might be a blitter object. It might be a Biologically Liberated Organo Beasties. I have no idea what that is. Might be a Big Lump On Board, which apparently is a military reference to a non-crew person sitting in a military aircraft. It could even be a Bum Lying On a Bench. I did not come up with those. That's from some acronym website that I hit to find some things there. But I'm pretty sure we're looking at a binary large object, OK?
So, the device the files and blobs. When you think about files, think about Windows Explorer, OK? When you think about files, think about Windows Explorer. When you think about blobs, think about a single directory in Windows Explorer that has lots and lots, and lots, and lots, and lots of files in it. OK.
So, that's really what we're dealing with. When you go to a file container, you can actually create subdirectories and we will see that today. When you go to a blob, it's a blob, it's there. It has a name, but it's just there. And you can put lots and lots of stuff in there. Lots and lots of files in there. But it's a blob, OK?
So, that's one distinction between the blobs and the files. The other distinction is this. If you have a drop box type of an account, or share like that, the file account-- there are other sharing opportunities available if you create a file account. So, if your sole purpose in going to the cloud here for storage, is so that your program can access files as needed, or give access to people certain files as needed, if that's your sole reason for doing it, then go with the blob.
If there might be a benefit to having some other kind of a sharing option, in terms of people being able to go down and browse through folders and things like that, then go with the fileshare. Good enough?
All right. So, we're going to create a new container called User Downloads. OK. User Downloads. And this I think is going to be the binary large object. Now we have our blob container created, we can try uploading a file. So that's what the interface looks like.
So, if I come over. Which one we're looking at, here? We're looking at User Downloads. So, I come here, and come here. And let's go to our user downloads. You can see we've got an upload button right here, right? You can click on that. And over here, it says, Select a File. So I select a file.
Let's go to AU2016 and pick our cloud storage PDF file. And we'll upload that.
Block size. What descriptions they have here? Blocks, and Append Blocks. You can place a block. This block can support up to 5,000 blocks. 50,000 blocks. So, larger files the larger block size. There's probably also a performance benefit to having larger block size for larger files.
We'll click the Upload button here and it says Upload Completed. Well, that was fast. That was fast. All right. Now, if I come here to-- move into the cloud and click on that button, which is-- no, it was Integrated Storage Cloud. So, this is our class here, today. The handout will actually have this move into the cloud for SQL, as you're here. We'll take a look at this one, though.
What I want you to notice is there is a little button here to copy the link. OK? If I copy that link, and then I come up here to my web browser. And do Control V to paste. That file just came off the cloud. OK?
Now, the cool thing is, it's pretty fast. I can upload a file, OK? And it's now on the cloud. It's available for anyone. If you were to use your phone and type that in, then you would also be downloading that same file from the cloud. OK. So the file we just barely uploaded. Now, the downside is, my file name has spaces in it. So, there's a special thing called . That, every time there's a space, instead of putting a space, you need to put a in there. OK? I mean, you could try without that, and see what happens. It might be OK. But it translated the into spaces when I pasted it in there, so it may work with , or with spaces, and may need the s in there.
So, how easy is it to actually get a file on the cloud? If you are starting totally from scratch. In about five minutes, you can create a new Azure storage account, create a new container that's available publicly, and click the Upload button and pick a file, and it's up there. In about five minutes or less. OK?
And, how long would it take to get IT-- and I'm not banging on IT, it sounds like I am, maybe a little bit, but how long does it take to get an IT department to get a server for you? To get the software installed, get an IP address, to get a port opened up on the firewall? It's going to take more than five minutes in most scenarios. OK? More than five minutes.
So, this is kind of an API class, kind of. So, let's take a look at what it takes to programmatically get that same file, or actually the previous file that I put up there, down. OK?
I'm going to switch over now to Visual Studio here. And let's just skew on up here. Let's change our font size, that might be a little easier on your eyes. Right? Fonts. Let's go to. Let's try 14. See what that does for us. All right. A little better? All right. We're going to ignore all the rest of the stuff here. And just focus on this one line of code.
One line of code is all it takes to download a file from the cloud. In the way that we just did it. If you can copy and paste a file name, or URL in a browser, you can use this. My.Computer.Network.Downloadfile call. You don't have to reference anything. You can just use that call right there. And that will download any file that's out there on the internet. OK
If you see a picture you like, right click on it, look at the properties of it, copy the URL, plug it in here, and that can download that file for you. OK If it's a PDF, you can download it. WAV file, MP3, whatever it is you want to do, you can download it using this My.Computer.Network.Downloadfile. OK? Very simple.
The other nice thing is that not only do you download it, but you tell that file where you want it to be stored and what you want it's name to be. So, if you want to simplify that file, as well, the file name, you can do that, as well. And that's part of the call.
Here's a file where it is, and here's where I want that file downloaded to, including the filename. All right? So, one line of code. We can handle that, right? Most of us can handle one line of code. And it's simply a matter of getting that URL and copying and pasting it.
Now, regarding security. One thing to consider. Ignorance is the best security measure out there. OK? Many of you will be going home today or tomorrow, or the next day, and many of you might go home on an airplane. You're going to go into an airport, you're going to go through this massive security thing, your bodies will be scanned, your pictures put on the internet, just kidding. They're going to scan you, they're going to check you, they might frisk you, they might go through your stuff. Once you get past that initial harassment, necessary evil in today's society, unfortunately. Once you get past that, if you look for it, you will see ignorance as a security measure all around you. OK?
If I physically tried to run through that security area, and just knock people over so they could not search me and frisk me, and make me go through metal detectors, that might be a big challenge. But if I, once I get past that, it's all about ignorance. You'll see doors with little keypads on them. Not scanning RFID chips, but just keypads all over the place. You pop in four digits and you're now on the tarmac.
OK? What is keeping people from getting on the tarmac? Is it someone standing there with a gun? It's ignorance. It's lack of knowledge of what that four digit code is. Perhaps a concern for their own health and safety maybe, as well. But, generally speaking, it's ignorance.
So, we just put a file on the cloud. How many people have downloaded that file, so far? I just did. I just did. But how many other people around the whole wide world? Hackers galore, trying to pound things, trying to hit things, right? What would it take for a hacker to be able to get this? Up here. How long would it take a random generator to come up with that? Brute force attack. How long would it take to come up with that? Probably a little while. OK?
Now, selling a CEO of a major corporation that ignorance is our best weapon, that's not something you will ever see on any logo. [LAUGHS] OK? Hey, come to Jerry's Security, where ignorance is our best weapon. You know? That's just not going to sell anything, I understand that. But in reality, if someone doesn't type in those letters and spaces, and all that stuff as it is up there, they're not going to get the file. OK? They're not going to get it. So, just something to consider on the security side of things.
All right. So, I've now got this files as downloaded. That's really groovy, that's really nice. That's really neat. Am I allowed to say the word "Groovy"? Let's jump down here. We just did that. We just download that file. There is the URL there. I'll leave that for a second. If anyone wants to typing that into their phones, good luck. I did it, just to make sure it works. Just so you know. OK? But that really, [LAUGHS] really held me up. , 20%, stuff. All right? OK. Let's continue.
I should have put a QR code up there, so you could just hit it, right?
All right, let's talk about access keys. One of the things that we do with a storage account, and this is the AU2016 storage account, is we create something called an access key. Now, you can see on the screen here, there are actually two access keys that are here. And what the recommendation is, is that you choose whether it's key 1 or key 2. There's nothing special about key 1 or key 2. But you choose one of them to be your prominent. This key never changes key.
And on the other one, it's one that you change from time to time. If we store our files in the cloud here. In such a way that it requires an access key to get to it, that's our first level of security. Now, once again, that's a pretty long string there. The I/EU9E+NT, that's a pretty long thing, it would take a while for a random generator or a brute force to come up with that. OK? But when you distribute applications, when you distribute things like that, that key needs to be somewhere and needs to be acquired somewhere.
At some point, there has to be some kind of an authentication that kicks things off. Whether it's a username and password that queries a database for today's access key, if that's the way you want to do it, you could do that. But now there's going to be a username and password, right? So now, you have these two things out here. So, at some point, there is a point of entry into this.
Borrowing a username/password type scenario that we write into our programs, we'll just have this access key that we deal with.
AUDIENCE: That key is controlling access? It's not encrypting the file?
JERRY WINTERS: It's not encrypting the file. When you create your containers, you can actually specify whether or not you want them encrypted. But that's not an encryption key. That was just an access key. Great question. All right. So, those were access keys. Now, honestly, I've been playing around this obviously, because we're getting ready for a presentation here and everything, so I don't know if my code is going to work, I might have to change the access key. But what do with that access key, is you put it into a connection string of sorts. And then we use it.
So, we have the first one that I created that allows us to put stuff up there that's available to everyone. Now, we're going to create a new file share. So, we click on New File Share. And this is going to be-- the first one was User Downloads, this one is User Uploads. And we click on the Create button. Pretty simple, pretty straightforward stuff. The next thing we're going to do is in our account, or our program that we're creating here. in Visual Studio, we're going to add a new reference to the Microsoft.WindowsAzure.Storage. OK?
One reference is all we have to add to our project. So, whether I say standalone windows forms application, or an AutoCAD add-in that we will compile to a .dll, we select this one reference. And now the cloud is ours. OK? The cloud is ours.
Now, I have not tried this. I don't necessarily recommend this, but you might want to try this. We talked about the whole brute force thing, right? If you wanted to, you could always get this reference in your application, and just try hitting up a bunch of storage accounts. Try to come up with what their names might be. I mean, you could always do that. Right? So, we're going to add a new reference to our project, here.
And then we say OK. And once that's in there, we need to create this little access, I'll call it connection string here. OK? Our stored string has the protocol. How are you going to get this file? An account name, AU2016, you saw that. An account key. This is the key that we saw just a moment ago. The access key. OK? So, by having a single string in our application, a single variable, I should say, that stores that access key, we don't have to have that copied and pasted all over the place. OK?
So, whatever your authentication mechanism is, you basically get the key in here somehow. Whether you're reading it from a text file, or a database, or some kind of an encrypted file that you're now decrypting when it comes into the application, that's the key that you need. So, with those pieces of information, specifically the account name, the account key, with those two pieces of information, we can actually get in and start working with the files on the cloud.
All right. We're going to look at two functions now. And let's see here. Let's go ahead and go here for that, to Visual Studio. Our first function is called Upload to the Cloud. Our second function is called Download From the Cloud. Any guesses as to what these things do? Hopefully, it's relatively self-explanatory. OK? That's it. Two functions. And now, you can upload and download at your will and pleasure. OK?
Now, I've done something to these functions that you may or may not want to do. It might be interesting to you, you might find it ridiculous, I don't know. But what we're doing here is, we're creating this thing called a GUID. And when I use Upload to Cloud, and I give it my file path, which is C:/temp/test.png, or whatever file it is, It brings that file in. But when I upload it to the cloud, I'm using this GUID as the file name. With the file extension of the file as it came in.
So, if I brought in test1.dwg, if that's the file I'm bringing in, on the cloud itself, the file name is going to be jibberish dot dwg. It's going to be a GUID, OK?
Now, this is done for a couple of reasons. Reason number one. Once again, this may not apply to you, but here's why I'm doing this. Reason number one. If I do this, and I upload a file called test1.dwg today, and I make changes to it, and upload a test1.dwg tomorrow, and then, the next day, I have made changes to it and I upload again, test1.dwg. How many files do I have on the cloud? Three. Because I'm actually changing the name. I'm changing the name to the GUID.dwg OK? And you'll see that in just a minute. OK?
So I'm changing the names. I've got three versions that file. Now, is that useful? It may or may not be to you. Don't know. OK? But that's what I'm doing in this example, here. OK? The other benefit is, how difficult is it to guess a GUID? OK? Great question. What is a GUID?
Another great question. I'm glad you asked. Let's take a look at the definition here. And a little thing on GUIDS, here. "A Globally Unique Identifier, GUID, is a unique reference number use as an identifier in computer software. The term GUID typically refers to various implementations of the Universally Unique Identifier Standard. GUIDS are usually stored as 128-bit values, and are commonly displayed as 32-hexadecimal digits, with groups separated by hyphens, such as et cetera, et cetera. They may or may not be generated from random or pseudo random numbers. GUIDs generated from random numbers normally contains six fixed bits. These indicate that the GUID is random, and 122 random bits, so locally, the total number of unique such GUIDs is--" there's more than 2,122 GUIDs, I'll tell you that. Something got lost in the copy and paste on that one.
That's going to be a 10, I think.
AUDIENCE: [INAUDIBLE]
JERRY WINTERS: Yes. It's going to be 10 to the 2112 power, approximately 5.3 times-- why do they do that? Anyways, sorry about that.
"Assuming uniform probability, for simplicity, the probability of one duplicate would be about 50% if every person on Earth, as of 2014, owned 600 million GUIDs". So, if every single person on earth was given 600 million GUIDs, the probability is 1 out of 2, 50%, that someone on Earth would have the same GUID as someone else on the Earth. OK?
So, security wise, if someone's trying to guess a filename, they might be able to guess a file name, possibly. Like, DoNotOpen.txt you know? Or Payroll.mdb or something like that, OK? That kind of thing could be guessed. But these kind of GUIDs are fairly unique, as we can see here.
AUDIENCE: How do you find it?
JERRY WINTERS: How you-- great question, I'm glad you asked. [LAUGHS] Let's take a look at something, here. Yeah. Well, that's exactly what we're going to demonstrate here. So, let me go here. Let me just make sure I get a break point here. Let's create a break point right there, and a break point right here.
I'm going to use my Upload to Cloud, and Download From Cloud, OK? That's what I'm going to use here. And so, that's buttons two and three. Let's run this here. And let's try-- now, I'm totally dependent on the internet connectivity here, hopefully it works. Boom. That's done. Congratulations, I just uploaded Test.png to the cloud. A new file is on the cloud. A star is born. OK?
How do you find it? Great. I don't know. I just created a GUID. What's the chance of finding that GUID, or recreating that GUID? Not very good, OK? Bad code. Bad, bad code. OK? Button two is bad code. All right?
Let's take a look at another example here, though. There's a slight improvement here on button three. And when we go to button three, here. What we're going to do, and I'll put a break point right here, is, Upload to Cloud as a function that goes in here and it returns a string. Let's see what that string is. Oh, that might be useful.
So, Upload to Cloud returns a string, which tells me, this is the name of the file that's out there. OK. Now, what do I do with that name? That name could then be put in a database somewhere on a text file, text it to myself, email it to myself, that kind of a thing. OK? Now, once again, this whole GUID thing, it may or may not be useful for you. May or may not be helpful for you. OK?
But that's just what happened here. So, we upload the file of the cloud, we get back the return value, which is good. And now I can take that return value and immediately use it here to download that same file from the cloud. When I download it, in my code I'm saying, I want you to go to the temp directory, wherever that is. It's not SQL/temp. OK? And so, in my Download from Cloud, this tells me where it is. C:/users/Jerry/appdata/localtemp and then, the file name. OK? That's why I downloaded it to two, now. And why did I do that? Because everyone has a temp directory somewhere.
If I hard code a path to SQL/temp, it might work 80% of the time, it might work 50% of the time. I don't know. But everyone has a temp location. That's read right that I can write to. So, that's why I did that. All right?
Now, do you have to do that way? Of course not. You might say, "Oh, I changed the function to where you say this the file I want it downloaded, and this is where I want it downloaded to". You could have it download to a specified location. All right?
So, let's just take a quick look at that code again. Which is up here. Upload to Cloud. Download from Cloud. OK? They're both functions, they both return a string.
So, the first thing I do when I'm uploading, I say, "Hey, does this path, does this file even exist?". So, you put it into a file info object and then say, does this actually exist. Then we say, OK, if it does exist, then it's time for it to start going here.
First off, we need to get our cloud storage account. And we used that storage string, that was the one that had that key in it, the access key. Right? Here is the account name, here is the access key. So, create a storage account. Then, we get a file client. Then, we go to the specific file share call, User Uploads. We go to the root directory of that. And this is where the GUID is is created. OK? Whoops.
So, we just say, Declare a Variable as a GUID equals GUID.newGUID. that's it. There is a thing called a cloud file. And then we use the Upload From File. Now, if this technology is interesting to you and you start looking around, you're going to find that there are actually a lot of overloads to this. Cloud file, a lot of ways to get files up there. Reason being is because this can be used for many different things.
MyCloudFile. Upload from byte array. Upload from byte array asynchronously. Upload from file. Upload from file asynchronously. Upload from stream. Upload from stream asynchronously. Upload text. Upload text asynchronously. OK? I think the upload from file, because that's what I have. I've got a file.
Let's say I just copied a bitmap from a website to my Windows clipboard. Do I have a file? No. What I actually have is a byte array. If we go to the clipboard and get the data of what's on there, I actually have a byte array. OK? So without going through the process of trying to take that, create a new bitmap out of it, save it, and then say, Upload the File, I can simply upload my byte array. OK? Does that makes sense to anyone? Hopefully? Good. Any questions right now?
For our listening audience at home, there are actually people in the audience here, there are no questions. OK.
[AUDIENCE LAUGHS]
We will continue. We will continue. So, once you get the source code, you'll see a lot of stuff in here. A lot of stuff. OK? Lots and lots of stuff to work with, here. One of my goals here at AU is to make things really straightforward and simple. I mean, that is, from line 34 to line 48, that is 15 lines of code. Right? If your thinking it's 14 lines, it really is 15 lines. Just count them, if you want to. Trust me. It works. 15 lines of code, OK? One, two, three, four, I think there's 15 lines of code. OK. 15 lines of code to take a file, upload it to the cloud, pretty good.
You will find code examples out there, that are much, much, much, much more than 15 lines of code. OK? So this is a simplified version. It works. All right.
Downloading from the cloud, same thing. From line 49 to line 62 is, what's that? 13, 14 lines of code. All right? So, very simple things.
Now, hard coded in here, is the name of the container that we put up there. User Uploads. That's part of the code. All right? If I wanted to make this a little bit better, what could I do? Make that a parameter of the function, right? That way I got a little bit of leeway as to which one I want to upload to. Do I want User Uploads? Do I want User Downloads? Do I want User Side Loads? What do I want? And so, that would be something that could be done here.
Matter of fact, let's just do a quick little example of that here, for your viewing pleasure. Copy, paste. File idea as string, comma, container name as string. And substitute that for this. Whew. My hand's are in the wrong place, there. Let's try that again. Now, the people watching this at home, they have no idea that I'm kind of sitting kind of sideways here and trying to look at the screen from the edge here.
All right, so there you go. I just took that function that was useful, and made it more useful. Right? Instead of having something hard coded in there, it's now a parameter. So, when I call it, I'll say, "I want to use a container name called User Uploads" OK?
Container names. Container names are lowercase. Container names can contain a hyphen. But that's it. No other special characters. No underscores. OK? Now, that could change in the future possibly, I imagine. But if you go in there today and try it out, it will say, "No, you can't have that kind of a character in it". That kind of thing. You'll get an error message when you try to create the container name, originally. All right.
Let's go back to the handout and see where we are here. We are and the GUIDs. We're good there. We got the upload. We got the download. All right.
It's been running for a while, now. I want to know what files are actually out there on the cloud. In my cloud that I created. OK? So, this is like a little directory type of a command. I just put all this in the click event of the button, maybe not the best place, you might say, "Well, it'd be better to have that be its own function", and frankly I would agree with you. But there it is. OK? Whoops. There's our code. What are we doing? Get an storage account.
We're going to see that over and over, and over again. Right? Why? Because you have to get the storage account first. You have get the root directory. Do those things. So, that might be a good function to put in there, frankly. Get the storage account, create your client, go to the fileshare called User Uploads, get the root directory. And then, right here, we're saying, "Let's just list files and directories" OK, I can do that. So, it's just going to go through and show me a message box of every file that's been uploaded. OK?
Let's just try running that and see what happens, shall we? Let's go to button 4. List Cloud Storage Directory. There is a file. There is a file. Another file. File, file, file. Hey, what's that? That's a directory. Remember the call was Files and Directories? OK. This one here, happens to be a directory. OK? Secret files. What is secret files? Nobody knows. We'll talk about that in just a minute. And that's it. OK?
AUDIENCE: [INAUDIBLE] container or just one?
JERRY WINTERS: Say again?
AUDIENCE: [INAUDIBLE]
JERRY WINTERS: This one is actually a fileshare that we set up here. This is a fileshare. Yeah. OK?
All right. Let's move on here. Whoops, sorry about that. Let's get my hands in the right place, here. OK, here we go.
So that's how you list the files. Now, obviously showing each file name in a message box is not going to be the most useful thing. OK? Now, you can tell this is a file instead of a blob because the name of all these things are Cloud Files Client, Cloud File Share. So, that's how you can tell, just by looking at the code, what we're dealing with, there. Yeah. Great question, though. And good observation to catch that. All right.
Adding a directory. You simply go to your user uploads, Fileshare, you click on Add Directory. And then, Next. You give it a name, called Secret Files. Hit Create, and now you have the Secret Files.
Now, Secret Files is not really secret, OK? It was just a fun way to kind of have an additional subdirectory to deal with. I wanted to show in code that you can basically go to your root directory, which is here. And then, you can ask that root directory to get you a subdirectory. OK?
Once again, this is file container-specific right now. And then, at that point. I upload my file here. By going to my Secret directory and uploading it. And then, just so I can store that file name, so I can actually get back at it, right? So you can get it back. I just use, Return the name of the file that was used. OK?
AUDIENCE: Is there a way to upload a folder?
JERRY WINTERS: Can you upload a folder? I've never tried that, myself. I don't think so. Obviously, you can do one file at a time. Which is likely the way it would be done.
So, there's a way to test that, actually. Let's do this. Let's go to Upload Cloud Secret here. And let's go to Secret Directory, and let's just see if we have a-- stop the execution.
I'm not seeing any options to upload a directory here. I'm seeing some delete stuff and create stuff.
AUDIENCE: Can you create directories from--
JERRY WINTERS: Yes. Yeah. That's where these Creates come in handy here, is creating a new directory. Yeah. Obviously in the file storage side of things. Great question, thanks.
All right. How are we doing on time here? Got 30 minutes. All right.
And that's just a little example Upload to Cloud Secret. It's just a little example. We don't need to run that.
OK. Let's talk about access policies here. We saw some things about the access keys, right? And the access keys actually get us into our account. And then, on top of that, we have the access policy. So, the access key gets us into the account, then we have the policy, if we need it. So, the first file we uploaded was a PDF file, and we uploaded it, and anyone can put that URL in a browser and download it, right? Without knowing any kind of access key or anything. OK.
So there's obviously talking about the types of containers that need that. Once a container is created, it has this thing called access policy. And there are three options. One is private, so here is a description of private, to the account owner. Other one is blob, to allow public read access for blobs. Then, we have a container to allow public read and list access to the entire container. OK?
So, if you want someone to be able to list the contents of your container, which one would you use? Container, right? If you want someone to be able to download the file if they know the name of it, you would use blob. And then, if you want to restrict things to where they can't just do that arbitrarily without these secret keys, then you would want to use the private.
AUDIENCE: So, if you want them to be able to download it, they can use blob or container.
JERRY WINTERS: Yes. Blob or container for them to be able to download it. Obviously, blob, you need to know the name of the file to download it. And container.
OK. So, I clearly a blob container called blob/SAS. It's private. OK? The blob says it's private, cannot be just arbitrarily read from, arbitrarily download from, etc.
So, you'll notice one of the primary differences here is that the blob is using the cloud blob client. It's using the cloud blob or blob reference from server, etc. OK? So, when we download a file from the cloud, this is hard coded here. OK? This is the URL that I want.
Why is this coming up? No, we don't want to go to that file.
Well, you know what? Let's do that. Just for kicks, here. Just click on it. Allow it. And see what happens. OK? Even if someone knows the name, even if they know exactly where it is, right? If they're not accessing it through the access key, they're going to get this kind of a message.
AUDIENCE: [INAUDIBLE]
JERRY WINTERS: Right. Now, the nice thing is, it says "Resource not found".
AUDIENCE: Yeah.
JERRY WINTERS: Which I like. It doesn't say, "Hey, try a different password".
[AUDIENCE LAUGHS]
AUDIENCE: Computer, you just gotta try.
JERRY WINTERS: Right. Try, try again. Little encouragement for you, here. Keep a' hacking. You'll get it. Right? So, it just says "Resource not found", which is very generic, I mean, what does that "resource not found" mean?
So, that's what happens when you try to access it. OK? And the same is true for other types of containers that you don't have access to. You'll get the same type of thing there. Right?
OK. So, thank you to Adobe for putting that little link thing in there. So, hard coded, this is a URL that I want. Now, I have my storage string. Since I have my storage string, that may change tomorrow, I can actually get that file downloaded.
So, I'm going to go to Download From Cloud Blob. And see if I can get that file to download here. Let's go to temp.point. Over here. Here's my temp. Here's my point. I want to delete that and see if we can get that from the cloud here, all right?
Before I do that, I'm going to go to this, and this. Not that. This. And I'm going to go to my-- let's see here, where are my access keys here? Where did my link go for my access keys? There It is. Access keys. All right.
And just for kicks, let's regenerate that one. It's nice to have a warning because it's not undo button, right?
AUDIENCE: Does it matter which one you use?
JERRY WINTERS: Let's redo-- No. In the code, it doesn't matter which one you use. OK? So, in the real world, we actually would not want to reset both of these, generally speaking, OK? But I want you to do that there, anyways. I want to try running this. Let's see what happens if we try to download now from the cloud blob. OK? That's the file I want. Step two that. You weren't supposed to see that step, yet. That's OK. Client.
I'm trying to get that reference here, and what am I getting? "Unhandled exception. The remote server returned error 403 Forbidden". That's what I'm getting, there. Why am I getting that? Because my connection string to my account has the old key. Right?
So, let's do this. Let's see what can we get away with, here. Let's come back here and we'll do this little copy, here. Copy that. And let's come up to our storage string, here. And come over here, and paste that. Boom. OK?
Now, that's not going to reset until we start this again, so we're starting again, here. Now, all the magicians do this, so I'm going to do this, too. OK? Nothing up my sleeve, the file is not there. We'll hit the Download File from Cloud Blob. Hit the F5 key on the keyboard and feeling really good about it. And now, it's there. Is it the pointer? Is that where it was? Pointed about P&G, yeah. OK. So, there we go. OK?
So, one nice thing here is, you can see that if you're under attack, and you've got your own server, your own box. If you're under some kind of a network attack from the outside, what do you do?
AUDIENCE: Pull the cable.
JERRY WINTERS: Pull the cable, right? Pull the plug, pull the network cable, right? You don't even have to turn it off, unless the problem is actually on the server itself. But just pull the plug, you're now disconnected. Whoever's trying to do whatever from the outside, they can't get to your machine, because they get there through the wire, right? Through the Cat 5 wire. All right?
Same thing here. If there's a concern, change the key. What's the worst thing that can happen? The phone starts ringing. Hey, this isn't working anymore. "Oh, we've had a new update with some great new security features for you. Let me get that to you". Right? So, that kind of thing. I mean, that's what you'd say, behind the scenes, like "No!" but, that's what you'd say. OK?
So, you saw how it easy it was. Click. Click. Two clicks. My access keys are now totally new, and let's even pretend that someone came up with a brute force on those access keys. They're now starting from scratch, again. Right? OK.
All right. So, we have our download, upload. Let's click on button seven here, still running good. Click on Upload and let's just pick a-- let's see here. Should we get the AutoCAD installation? Upload that to the cloud? Just kidding. If anyone's here from Autodesk. That's not going to happen.
Let's go to 2016 Autodesk University. Let's pick the-- I don't know. Hands-on Introduction to C#. Boom. I'm just going to put a break point right here. F5. And there's my new URI. Now, in this case I'm not using the GUID on this particular sample here, OK?
So there's the GUID. I can right-click that. I can go here. Right-click. Copy Value. I really hope this doesn't work, because it's not supposed to, if it does, I'm in trouble. Paste over here. Whoa. And it's trying to-- it's got a-- Look at that. So, it doesn't even have the whole thing in there. So, it doesn't work.
It's trying to do a Google search on that string, I don't know what it's going to find. Interesting stuff, I guess. All right, good. All right. And then we move on and we're out. Same thing with listing the blob container contents, as we had with the file container contents, here. You've got a pointer in there, you've got a hands-on in there, you've got a TARDIS. Don't ask. [LAUGHS]
I'm just playing with the neat stuff that uploads. Anyways. Had a [INAUDIBLE] of the video they had a bitmap with TARDIS on the video I was helping someone with, so that's how that got there. OK.
So, before you came in this class, maybe you already knew how to do all this stuff. But, hopefully, even if you didn't, by now you've seen examples of how to create this account, how to create these different types of storage containers, how to read from them, how to write to them, OK? And some of the differences between the different options.
Now, I have to warn you that the cloud is constantly changing. My guess is that over time, additional types of containers will be created to support different needs. OK? So, this is as it is today, tomorrow there may be additional things. If you create your own account and you're going to see things like, "What's this table storage thing? What's that all about?" You're going to see other types of storage containers for different types of things.
The blob type thing here is used when we want to take files. And that's really what this class is all about. OK? So, any questions of what we've covered so far? And then we'll go on to the last section here. Any questions? Or is it just?
AUDIENCE: So you can use the keys as kind of a natural expiration device, as well. If you are, say, you're changing the key monthly. For example, we got updated [INAUDIBLE] and we give this out to outsources that are working for us on projects. When they're done with the project, I don't want them to keep getting the updated database, but if I change the key, let's say, on a monthly basis, and then send it to the people that are currently working with, then it's just going to expire for the other people. They're not going to get the updated version.
JERRY WINTERS: Right. Right. So, the question was. With this access key, could it be used as a time-out type mechanism? Where, maybe the first of each month we reset the key, and only those that have paid for some kind of subscription service or whatever could download that? Absolutely. There's probably a more elegant way to do that just with a SQL Azure database. And I don't know how many of you were in my SQL Azure class, yesterday. But there might be a more elegant solution to that. Because, basically they log in and you'd say expires on whatever date. But if they have an account, if they have an executable, let's say, or .dll that they load with AutoCAD, and there's no login type process, then absolutely yes. You could just change the access key and suddenly it's not working.
If you do that, you would probably want to put something in your code, though, that, when it sees that forbidden error that we saw, right? When it sees that, then it responds to that particular exception. Right? That says, "Hey, enter your credit card here and you can keep using our program", right? So, something like that. Yeah. Great thought.
All right. Anything else? Anyone else?
All right. The last segment of this class is this. We've been talking about this cloud storage stuff. What you can do, hopefully, as we've been talking, hopefully, you've been thinking about how could I actually use this in my own environment? How could I use this to benefit my company? How could I use this to benefit myself? What would be the uses of this type of technology? Whatever it is that you deal with on a daily basis.
So, what thoughts have you had on that? How can you see this being used in an AutoCAD-type scenario? Block libraries? Anyone do block libraries of some sort? OK. Anyone have issues keeping people up to date and current on their block libraries? Because that would be an obvious, I think, way to use the cloud here for storage. Globally accessible, but securable through credentials and all that.
Any other thoughts on what you could do with this? Someone mentioned before the class even started, before the recording, can we Xref a file on the cloud? That's a fascinating question. And maybe we'll try at the very, very end here. And see what happens. Because we know that we can just put in a URL and download a file from the cloud, right? With no permissions, no nothing. Just download it. If you know the string to put in there, the URL, you can download that file. So, can the same be done?
I guess the way to answer that question, the way to know about that, is, can you put HTTP:// can you use that in the name of an xref? I don't know. Great question. We'll try that.
AUDIENCE: You can in a raster.
JERRY WINTERS: A raster can be. Yeah. So, what will the application to that be for using the Civil 3D type stuff, map overlaying, georeferenced imagery and that kind of stuff. Satellite, aerial photography, that kind of stuff. That would be great. Great thing to try. Go home and try it. Yeah. Any other thoughts?
AUDIENCE: [INAUDIBLE]
JERRY WINTERS: Two pallets? OK. What you really need to do is ask yourself this question. When I use AutoCAD, what files are used? Where are they located? And would there be a benefit to putting those up on the cloud? That's the question, really, right? What files are used?
Now, you might say, "You know what? I just attended a class on the cloud. I'm going to use it".
[AUDIENCE LAUGHS]
"I don't care if my company needs it. I'm going to use it, anyway. I'm going to create a new process". "You must download this thing and execute this", I mean, you could do that, obviously. OK? But, remember. Programmatically, here, we're downloading files, and you might have an update process that downloads automatically a new executable up there, or maybe it just downloads a new xml file that has the information of the files that need to be updated. Or the case history, so I can say, "I haven't updated since the last two versions", so these are the files you need to get. OK? So, having the file that drives those updates could be on the cloud.
The nice thing there is, you don't have to do a network shares. You don't have to give people VPN access to your server. It's just out there. Somewhere in the cloud. Somewhere out there. I won't sing for you. OK? Somewhere out there. Yes?
AUDIENCE: So this would be a-- for remote users. For people who are not hooked up to your network. I don't see where it would replace it--
JERRY WINTERS: So, you are saying you could see this being used for remote users?
AUDIENCE: If someone is not connected to the company network for some reason.
JERRY WINTERS: OK.
AUDIENCE: Unless I'm missing something.
JERRY WINTERS: Well. So, what Chris just said was-- it is Chris, right? OK. He just said, "I kind of see this as something that maybe for remote users that aren't connected to the network, might through VPN perhaps, or something like that". This could definitely be used for that. But that view of it is basically coming from where you're at, right? And what your company does. So, a company that sells DWG files for a living, OK?
So, there's a company out there named Coachman, KcoCAD I think is his company, Kevin Coachman. And his company is dealing with I think, restaurant equipment. Block library, kind of things that he does. OK? And so, Kevin has an infrastructure already because he has been doing it for many years. He has a system in place where people can use his program, which helps him to find the right blocks and things like that. So, he has more than just block libraries. There's a lot of other data driving things behind the scenes. But, he already has an infrastructure set up to allow people to download the latest updates and things like that.
Those can be put on the cloud. So, in his situation, he's a service provider, if you will, and so that's his information. That's his--
[APPLAUSE]
Thank you. That's what he's doing. And dealing with. And so, him is going to be different. So, you're looking at your company employees, him is looking at his customers, right? Outside customers. Right?
What about a city? How would a city make use of this stuff? You've got a silly thing out there called the Freedom of Information Act. Right? Which is supposed to mean that you and I can walk into a city and basically have access, or a state, or a country, this country, at least, United States, and say "I would like these documents, please". And based on the Freedom of Information Act, unless they're marked as classified, they are supposed to give me those documents. If they are classified, they're supposed to be able to give me redacted documents. That has stuff blacked out. Supposed to be. OK? So, how could they benefit from having this on the cloud?
Same thing. They've got IT department, just like anyone else. Right? So, they can maintain it themselves. Or, frankly, if it's supposed to be available to everyone, they can make it available to everyone. Right? And remove the red tape, remove the bureaucracy, remove all that stuff. OK?
Now, the cloud storage we're talking about here. We've been putting up pretty small files, except for that AutoCAD install file we looked at, which is like two gigabytes. It's a fairly small file.
So, cloud storage, you're going to pay based on two parameters. One, is how much is out there, and accessible. And two, is how much traffic you've got. So, you can have one file up there on the cloud, it gets downloaded billions and billions of times a day, and it's going to cost you for that one file. Or you could have a bunch of files up there that nobody downloads but you, and it's not going to cost as much.
So, if you have Blu-rays that you've ripped, or DVDS that you've ripped, the cloud may not be the best thing for you. But you can always create your own little cloud. All cloud means is redundant storage. In this reference that we've been using here, it's talking about different geolocations, as well. But, you've got these little hard drives now you can plug-in, that they're calling "the personal cloud". It's just a RAID array, right? It's all it is. Nothing--
AUDIENCE: Does it log the activity? Can you look and see who has downloaded or--
JERRY WINTERS: Yes. There are things you can track and see, here. So, let's come here to Activity Log. Now, this is not going to give you people's names and addresses, and phone numbers, and email addresses. Right? But this is going to give you-- well, so Activity Log is just stuff you're doing here. Oh, where is it? Diagnose Properties.
Might just be an overview. There we go. That's your monitoring. That's what we want. Now, as I mentioned, there's not a lot of activity going on, right now to create available data. That might just be dead. I don't recall what the refresh time is on that. I mean, we haven't been using this for very long, here.
So, that's where you'd see that kind of information. If you want to see who's downloading files, then that's have to be built into your application. Yeah.
AUDIENCE: So, then it logs the activity from the side--
JERRY WINTERS: Yeah. What this is going to log is basically stuff that matters to your wallet. This is going to be talking about what kind of throughput you're dealing with, how many people are downloading, how much data is crossing the wire. Is what this is telling us, here. And then, usually, on Monitoring, we also get a little map that shows who's up and who's down, as far as their replicated servers and things like that. Yes?
AUDIENCE: Is there a way to create a container such that somebody else can upload to it without FTP or--
JERRY WINTERS: So, the question is, can we create a container that other people could upload to? So, we saw the container that we could upload to, right? That other people would download. But how would they upload to us? So, the file container does have other mechanisms available that would allow that to happen. It's kind of like a network share, if you will, that kind of a thing.
So, yes, people could upload and download using those mechanisms, as well. Great question.
How are we on time? All right. Got nine minutes. Any other thoughts or ideas? Things that you'd like to see right now? What would you like me to do and upload to the AU website that uses the cloud storage? Any thoughts?
AUDIENCE: One I'd like to see where I think I saw in another class, where using [INAUDIBLE] APIs. They were uploading to Amazon as three-- if there is a sample such as-- again, that would mean that you would have to give some type of permission. And then, calling, let's say, [INAUDIBLE] getting it to upload the converted file on to the Azure container.
JERRY WINTERS: OK. So, Forge is a platform that allows for viewing, reading documents, converting documents, and that-- I shouldn't say that. No, I am OK with what I said. I just taught myself, though. Some things were announced at the ABN conference, I don't know what's public yet, so I won't say that, OK? But Forge is growing in its abilities To view, edit, create content. And so what you're saying is, use the Forge API.
AUDIENCE: Right. Let's say I'm making [INAUDIBLE] as opposed to be using the data match [INAUDIBLE] while I [INAUDIBLE] my drawings onto my Azure container. And then, calling, let's say, design automation or beta [INAUDIBLE]
JERRY WINTERS: Against the Azure storage? OK.
AUDIENCE: And then, whatever the converted product is, putting it back on Azure, as opposed to-- because the [INAUDIBLE] could care less where it's pulling form and pushing it back up to. The data management is Autodesk's Azure equivalent, you know, file, API.
JERRY WINTERS: OK. So, kind of borrowing some of the functionality from Forge, but using the Azure storage mechanism instead of using Amazon, or whatever they showed in the examples. OK.
AUDIENCE: They said that the Forge [INAUDIBLE] API does have translations. And one of the things they quickly said that you can chose to, you could take that file and download it locally, so maybe using the derivative API and converting the .dwg file to something and storing it.
JERRY WINTERS: Right. Yeah. That's-- Great idea. So, yeah. We could definitely do that. That wouldn't take that much to do. Of course, now, we've got another API we're implementing, right? With Forge and that. And getting that in place but not a big deal. Yeah. Great idea.
Any other thoughts? Anyone?
So let's make little notes here. And I'll see if I can throw a couple of examples together for everybody. And get those uploaded here. So, we have Forge API to convert file, then, upload to Azure storage, is that kind of what we're looking at?
AUDIENCE: Yes. [INAUDIBLE] So, one was [INAUDIBLE] So yeah, converting something to SVF format, [INAUDIBLE] the viewer accesses it from--
JERRY WINTERS: OK.
AUDIENCE: That's a real [INAUDIBLE]
JERRY WINTERS: So, let's just say, take a directory. Convert all files to SVF. And upload to Azure. Then use the viewer to view the Azure. Does that look good? Is that a good one for everybody? Let's do that. Let's do that.
AUDIENCE: You've got five minutes.
[LAUGHTER]
JERRY WINTERS: Whoa. Five minutes. It might take me more than five minutes. Might take me more than five minutes. But that's pretty straightforward there. Pretty straightforward. I will keep-- I'll get the sample code up, and what I'll do is, I will keep the storage count open. So, you'll be able to use it if you want to, and try it out. OK? And then, about a month from now, what am I going to change? The key, right? Change the key. What's that gonna do for me? Changing the key basically means you don't have access to it. That way, I can close it down. That way, it's not costing me too much money per month to keep this thing up. OK?
AUDIENCE: As far as your usage [INAUDIBLE] approximate, in the free trial, as you said, it is measured not only in the amount that you upload, but the the bandwidth also that you're using up. How much usage did you get out of it, approximately?
JERRY WINTERS: The question really is, what it's going to cost if, let's say we have, 200 gigabytes of data on there, and we have x number amount that's downloading that kind of thing. Here's what we want to do for that. There's actually an estimator program. If I come on here. And, Azure. Estimator program. Let's see here. Pricing calculator. That's the one you want to use right there.
And, so whatever your specific requirements are, thoughts are. You can use this to come up with it. It's kind of one of those things that they don't really tell you exactly what the metrics are involved here. But you can use this calculator and put your own parameters in there. And that way, you can find out what's this really going to cost me. And so that would give you that number.
So, rather than me trying to come up with a number for you. That's the way to do it. So, you have to Google "m Azure pricing calendar" and put it in there. And I believe this is applicable to storage as well as SQL, as well as processing, and things like that. Remote desktop, virtual machines, that kind of thing. Good question.
AUDIENCE: This one is 215 gigabytes and it was 15 DTUs for $15 a month--
JERRY WINTERS: Right. But that gets back to what's a DTU and what that actually means. So, this would allow to get better pricing on that.
Well, you guys have been great. Thanks so much for coming. I appreciate you and hopefully you'll go back to your offices and--
[APPLAUSE]
--create your own Azure storage containers and start playing with it. Start working with it. All right? Have a great day, guys.
AUDIENCE: You too.