public int Run(string[] args)
{
if (s_projectId == "YOUR-PROJECT" + "-ID")
{
Console.WriteLine("Update program.cs and replace YOUR-PROJECT" +
"-ID with your project id, and recompile.");
return -1;
}
if (args.Length < 1 && PrintUsage()) return -1;
try
{
switch (args[0].ToLower())
{
case "create":
CreateBucket(args.Length < 2 ? null : args[1]);
break;
case "list":
if (args.Length < 2)
ListBuckets();
else if (args.Length < 3)
ListObjects(args[1]);
else
ListObjects(args[1], args[2],
args.Length < 4 ? null : args[3]);
break;
case "delete":
if (args.Length < 2 && PrintUsage()) return -1;
if (args.Length < 3)
{
DeleteBucket(args[1]);
}
else
{
DeleteObject(args[1], args.Skip(2));
}
break;
case "upload":
if (args.Length < 3 && PrintUsage()) return -1;
UploadFile(args[1], args[2], args.Length < 4 ? null : args[3]);
break;
case "download":
if (args.Length < 3 && PrintUsage()) return -1;
DownloadObject(args[1], args[2], args.Length < 4 ? null : args[3]);
break;
case "download-byte-range":
if (args.Length < 5 && PrintUsage()) return -1;
DownloadByteRange(args[1], args[2],
long.Parse(args[3]), long.Parse(args[4]),
args.Length < 6 ? null : args[4]);
break;
case "get-metadata":
if (args.Length < 3 && PrintUsage()) return -1;
GetMetadata(args[1], args[2]);
break;
case "make-public":
if (args.Length < 3 && PrintUsage()) return -1;
MakePublic(args[1], args[2]);
break;
case "move":
if (args.Length < 4 && PrintUsage()) return -1;
MoveObject(args[1], args[2], args[3]);
break;
case "copy":
if (args.Length < 5 && PrintUsage()) return -1;
CopyObject(args[1], args[2], args[3], args[4]);
break;
case "print-acl":
if (args.Length < 2 && PrintUsage()) return -1;
if (args.Length < 3)
PrintBucketAcl(args[1]);
else
PrintObjectAcl(args[1], args[2]);
break;
case "print-acl-for-user":
if (args.Length < 3 && PrintUsage()) return -1;
if (args.Length < 4)
PrintBucketAclForUser(args[1], args[2]);
else
PrintObjectAclForUser(args[1], args[2], args[3]);
break;
case "print-default-acl":
if (args.Length < 2 && PrintUsage()) return -1;
PrintBucketDefaultAcl(args[1]);
break;
case "add-owner":
if (args.Length < 3 && PrintUsage()) return -1;
if (args.Length < 4)
AddBucketOwner(args[1], args[2]);
else
AddObjectOwner(args[1], args[2], args[3]);
break;
case "remove-owner":
if (args.Length < 3 && PrintUsage()) return -1;
if (args.Length < 4)
RemoveBucketOwner(args[1], args[2]);
else
RemoveObjectOwner(args[1], args[2], args[3]);
break;
case "add-default-owner":
if (args.Length < 3 && PrintUsage()) return -1;
AddBucketDefaultOwner(args[1], args[2]);
break;
case "remove-default-owner":
if (args.Length < 3 && PrintUsage()) return -1;
RemoveBucketDefaultOwner(args[1], args[2]);
break;
default:
PrintUsage();
return -1;
}
return 0;
}
catch (Google.GoogleApiException e)
{
Console.WriteLine(e.Message);
return e.Error.Code;
}
}